import { KeysetPaginationRequest, KeysetPaginationResponse, MerchantConfigurationCSVField, Vehicle, VehicleChange } from '@bringg/types';
import { CommonOptions } from '../../Core/RouteGenerator';
import Session from '../../Services/Identity/Session';
import { PagedVehiclesFilters, PagedVehiclesResponse, VehiclesCsvImportResponse } from '../Vehicle.consts';
export default class VehiclesService {
    private readonly service;
    constructor(session: Session);
    load(id: number): Promise<Vehicle>;
    loadAll(): Promise<Vehicle[]>;
    create(vehicleData: Partial<Vehicle>): Promise<any>;
    update(id: number, vehicleData: Partial<Vehicle>): Promise<any>;
    batchUpdate(vehicles: Partial<Vehicle>[]): Promise<Vehicle[]>;
    delete(id: number): Promise<import("../../Core/CrudService").DELETE_RESPONSE>;
    loadAllByTeam(teamId: number): Promise<Vehicle[]>;
    loadMany(ids: number[], limit?: number, commonOptions?: CommonOptions): Promise<Vehicle[]>;
    getCsvUploadFields(): Promise<MerchantConfigurationCSVField[]>;
    importVehiclesCsv(file: Blob): Promise<VehiclesCsvImportResponse>;
    getAssignmentHistory(vehicle_id: number, options?: {
        start_date?: string;
        only_assignments?: boolean;
        order_by?: 'id' | 'start_time';
        order_direction?: 'asc' | 'desc';
    }): Promise<VehicleChange[]>;
    loadPagedVehicles(cursor?: number, filters?: PagedVehiclesFilters, limit?: number, page_action?: 'previous' | 'next'): Promise<PagedVehiclesResponse>;
    loadAllByTeamsPaged(payload: KeysetPaginationRequest<null> & {
        team_ids: number[];
    }, commonOptions?: CommonOptions): Promise<KeysetPaginationResponse<'vehicles', Vehicle[]>>;
}
