<?php

namespace modules\selfserve\interfaces;

interface selfserve_wash_flow_i
{
    public function previewVehicleEligibility(int $laneId, string $reg, ?int $customerNumber = null, ?int $vehicleTypeIdOverride = null, array $options = []): array;

    public function synchronizeSession(int $laneId, string $reg, ?int $customerNumber = null, bool $activateMachine = true, ?int $vehicleTypeIdOverride = null, bool $syncRelayState = true, array $options = []): array;

    public function recordMachineStartWebhook(int $laneId, ?string $reg = null, array $payload = []): array;

    public function getSessionSummary(int $sessionId): array;

    public function getLatestSessionSummary(int $laneId, string $reg): array;

    public function completeLatestSessionForLane(int $laneId, ?string $reg = null, ?int $customerNumber = null, ?int $orderId = null, bool $disableRelays = true, ?int $subuserId = null): ?array;

    public function forceStopLane(int $laneId, ?int $sessionId = null, bool $bill = false, ?string $reason = null, ?int $userId = null): array;
}
