import { GetAllRoutesMonitoring, LocationEvent, RoutesMonitoringRequest, Run, RunHistoryEvent } from '@bringg/types';
import { BringgDashboardSDK } from '../../BringgDashboardSDK';
import { CommonOptions } from '../../Core/RouteGenerator';
import { StorableEventUnsubscribe } from '../../Data/storable-types';
import { DataOptions, MappedStorableItem } from '../../data-entity';
import Session from '../../Services/Identity/Session';
import { RunQueryOptions, UpdateRunOptions } from '../run-types';
import { ActualBreaksByRunIdResponse, RunBulkCloseResponse, RunDriverAssignmentResult, RunMarkDonePlanningResponse, RunsResponse, RunVehicleAssignmentResult } from '../runs.consts';
import { TaskVehiclePair } from '../Service/runs.service';
export default class RunsApi {
    private readonly runsStore;
    private readonly runsService;
    private readonly storableDataService;
    private readonly realtimeSubscriptions;
    private readonly sdkGetter;
    constructor(session: Session, sdkGetter: () => BringgDashboardSDK);
    updateStoreOnEvents(): void;
    onUpdate: (callback: (run: MappedStorableItem<Run>) => void) => StorableEventUnsubscribe;
    onDelete: (callback: (run: MappedStorableItem<Run>) => void) => StorableEventUnsubscribe;
    onCreate: (callback: (run: MappedStorableItem<Run>) => void) => StorableEventUnsubscribe;
    get(id: number): Run;
    getAll(): Run[];
    getAllMap(): Record<number, Run>;
    getAllByPage(options: RunQueryOptions, commonOptions?: CommonOptions): Promise<RunsResponse>;
    getByIds(ids: number[]): Run[];
    add(run: Run): MappedStorableItem<Run>;
    remove(id: number): Run;
    loadMany(queryParams: RunQueryOptions, options?: DataOptions, commonOptions?: CommonOptions): Promise<Run[]>;
    loadRunsData(payload: RoutesMonitoringRequest, commonOptions?: CommonOptions): Promise<GetAllRoutesMonitoring>;
    load(id: number, options?: DataOptions): Promise<Run>;
    update(id: number, options: UpdateRunOptions, commonOptions?: CommonOptions): Promise<Run>;
    getHistory(id: number, commonOptions?: CommonOptions): Promise<RunHistoryEvent[]>;
    getLocations(id: number, commonOptions?: CommonOptions): Promise<LocationEvent[]>;
    getCashout(id: number, commonOptions?: CommonOptions): Promise<number>;
    assignDriver(id: number, userId: number, targetRun: Partial<Run>, commonOptions?: CommonOptions): Promise<RunDriverAssignmentResult>;
    unassignDriver(id: number, userId: number, commonOptions?: CommonOptions): Promise<RunDriverAssignmentResult>;
    assignVehicles(id: number, vehicleId: number, tasks: TaskVehiclePair[], commonOptions?: CommonOptions): Promise<RunVehicleAssignmentResult>;
    unassignVehicles(id: number, commonOptions?: CommonOptions): Promise<RunVehicleAssignmentResult>;
    bulkClose(runIds: number[], commonOptions?: CommonOptions): Promise<RunBulkCloseResponse>;
    markDonePlanning(runIds: number[], commonOptions?: CommonOptions): Promise<RunMarkDonePlanningResponse>;
    getActualBreaks(runIds: number[], commonOptions?: CommonOptions): Promise<ActualBreaksByRunIdResponse>;
}
