import { GetAllRoutesMonitoring, LocationEvent, RoutesMonitoringRequest, Run, RunHistoryEvent } from '@bringg/types';
import { CommonOptions } from '../../Core/RouteGenerator';
import Session from '../../Services/Identity/Session';
import { Route } from '../../Services/Route';
import { RunQueryOptions, UpdateRunOptions } from '../run-types';
import { ActualBreaksByRunIdResponse, RunBulkCloseResponse, RunDriverAssignmentResult, RunMarkDonePlanningResponse, RunsResponse, RunVehicleAssignmentResult } from '../runs.consts';
export type TaskVehiclePair = {
    id: number;
    vehicle_id: number;
};
export declare const Routes: {
    GET_RUNS: Route;
    GET_RUN_DATA: Route;
    GET_RUN: Route;
    UPDATE_RUN: Route;
    GET_RUN_HISTORY: Route;
    GET_RUN_LOCATIONS: Route;
    GET_RUN_CASHOUT: Route;
    ASSIGN_DRIVER: Route;
    UNASSIGN_DRIVER: Route;
    BULK_CLOSE: Route;
    MARK_DONE_PLANNING: Route;
    GET_ACTUAL_BREAKS: Route;
    ASSIGN_VEHICLES: Route;
    UNASSIGN_VEHICLES: Route;
};
export declare class RunsService {
    private readonly service;
    constructor(session: Session);
    getAll(options: RunQueryOptions, { signal }?: CommonOptions): Promise<RunsResponse>;
    loadRunsData(payload: RoutesMonitoringRequest, { signal }?: CommonOptions): Promise<GetAllRoutesMonitoring>;
    loadAll(options: RunQueryOptions, commonOptions?: CommonOptions): Promise<Run[]>;
    private loadPageChunked;
    private loadPage;
    load(id: number, { signal }?: CommonOptions): Promise<Run>;
    update(id: number, options: UpdateRunOptions, { signal }?: CommonOptions): Promise<Run>;
    getHistory(id: number, { signal }?: CommonOptions): Promise<RunHistoryEvent[]>;
    getLocations(id: number, { signal }?: CommonOptions): Promise<LocationEvent[]>;
    getCashout(id: number, { signal }?: CommonOptions): Promise<number>;
    assignDriver(id: number, userId: number, targetRun: Partial<Run>, { signal }?: CommonOptions): Promise<RunDriverAssignmentResult>;
    unassignDriver(id: number, userId: number, { signal }?: CommonOptions): Promise<RunDriverAssignmentResult>;
    assignVehicles(id: number, vehicleId: number, tasks: TaskVehiclePair[], { signal }?: CommonOptions): Promise<RunVehicleAssignmentResult>;
    unassignVehicles(id: number, { signal }?: CommonOptions): Promise<RunVehicleAssignmentResult>;
    bulkClose(runIds: number[], { signal }?: CommonOptions): Promise<RunBulkCloseResponse>;
    markDonePlanning(runIds: number[], { signal }?: CommonOptions): Promise<RunMarkDonePlanningResponse>;
    getActualBreaks(runIds: number[], { signal }?: CommonOptions): Promise<ActualBreaksByRunIdResponse>;
}
