import { TripStatus } from '../common/constants/enums';
import type { JwtUserPayload } from '../auth/jwt.types';
import { GpsService } from '../gps/gps.service';
import { PunchesService } from '../punches/punches.service';
import { TrackingCoverageService } from '../tracking/tracking-coverage.service';
import { TrackingEventsService } from '../tracking/tracking-events.service';
import { TripsService } from './trips.service';
import { AddNextClientDto } from './dto/add-next-client.dto';
export declare class TravelRequestsController {
    private readonly trips;
    private readonly gps;
    private readonly punches;
    private readonly trackingCoverage;
    private readonly trackingEvents;
    constructor(trips: TripsService, gps: GpsService, punches: PunchesService, trackingCoverage: TrackingCoverageService, trackingEvents: TrackingEventsService);
    private loadTripDetail;
    getActive(actor: JwtUserPayload): Promise<{
        routePoints: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        route: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        trackingCoverageSummary: Record<string, unknown> | null;
        requestId: string;
        userId: {} | null;
        user: Record<string, unknown> | null;
        requestDate: {} | null;
        clientName: {} | null;
        coordinates: {
            originLat: {} | null;
            originLng: {} | null;
            destinationLat: {} | null;
            destinationLng: {} | null;
        };
        status: string;
        rawStatus: string;
        isActive: boolean;
        hasDeparted: boolean;
        canMarkArrival: boolean;
        currentLegIndex: number;
        currentLeg: number;
        tripLegs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        legs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        punches: {
            id: {} | null;
            type: string;
            punchType: string;
            timestamp: {} | null;
            latitude: {} | null;
            longitude: {} | null;
            lat: {} | null;
            lng: {} | null;
            address: {} | null;
            batteryPercent: {} | null;
            gpsAccuracy: {} | null;
            speed: {} | null;
        }[];
        totalDistanceKm: {} | null;
        travelAllowance: {} | null;
        fuelRatePerKm: {} | null;
        id: string;
        tripId: string;
        fromLocation: {} | null;
        toLocation: {} | null;
        from: {} | null;
        to: {} | null;
        originLat: {} | null;
        originLng: {} | null;
        destinationLat: {} | null;
        destinationLng: {} | null;
        plannedDistance: {} | null;
        vehicleType: string | null;
        fuelType: string | null;
        purpose: {} | null;
        totalDistance: {};
        travelDuration: {};
        startedAt: {} | null;
        arrivedAt: {} | null;
        completedAt: {} | null;
        createdAt: {} | null;
        updatedAt: {} | null;
    }>;
    summary(actor: JwtUserPayload, mine?: string): Promise<{
        total: number;
        pending: number;
        completed: number;
    }>;
    create(actor: JwtUserPayload, body: Record<string, unknown>): Promise<{
        requestId: string;
        userId: {} | null;
        user: Record<string, unknown> | null;
        requestDate: {} | null;
        clientName: {} | null;
        coordinates: {
            originLat: {} | null;
            originLng: {} | null;
            destinationLat: {} | null;
            destinationLng: {} | null;
        };
        status: string;
        rawStatus: string;
        isActive: boolean;
        hasDeparted: boolean;
        canMarkArrival: boolean;
        currentLegIndex: number;
        currentLeg: number;
        tripLegs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        legs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        punches: {
            id: {} | null;
            type: string;
            punchType: string;
            timestamp: {} | null;
            latitude: {} | null;
            longitude: {} | null;
            lat: {} | null;
            lng: {} | null;
            address: {} | null;
            batteryPercent: {} | null;
            gpsAccuracy: {} | null;
            speed: {} | null;
        }[];
        totalDistanceKm: {} | null;
        travelAllowance: {} | null;
        fuelRatePerKm: {} | null;
        id: string;
        tripId: string;
        fromLocation: {} | null;
        toLocation: {} | null;
        from: {} | null;
        to: {} | null;
        originLat: {} | null;
        originLng: {} | null;
        destinationLat: {} | null;
        destinationLng: {} | null;
        plannedDistance: {} | null;
        vehicleType: string | null;
        fuelType: string | null;
        purpose: {} | null;
        totalDistance: {};
        travelDuration: {};
        startedAt: {} | null;
        arrivedAt: {} | null;
        completedAt: {} | null;
        createdAt: {} | null;
        updatedAt: {} | null;
    }>;
    list(actor: JwtUserPayload, mine?: string, page?: string, userId?: string, status?: TripStatus, from?: string, to?: string, cursor?: string, limit?: string, paginated?: string): Promise<{
        requestId: string;
        userId: {} | null;
        user: Record<string, unknown> | null;
        requestDate: {} | null;
        clientName: {} | null;
        coordinates: {
            originLat: {} | null;
            originLng: {} | null;
            destinationLat: {} | null;
            destinationLng: {} | null;
        };
        status: string;
        rawStatus: string;
        isActive: boolean;
        hasDeparted: boolean;
        canMarkArrival: boolean;
        currentLegIndex: number;
        currentLeg: number;
        tripLegs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        legs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        punches: {
            id: {} | null;
            type: string;
            punchType: string;
            timestamp: {} | null;
            latitude: {} | null;
            longitude: {} | null;
            lat: {} | null;
            lng: {} | null;
            address: {} | null;
            batteryPercent: {} | null;
            gpsAccuracy: {} | null;
            speed: {} | null;
        }[];
        totalDistanceKm: {} | null;
        travelAllowance: {} | null;
        fuelRatePerKm: {} | null;
        id: string;
        tripId: string;
        fromLocation: {} | null;
        toLocation: {} | null;
        from: {} | null;
        to: {} | null;
        originLat: {} | null;
        originLng: {} | null;
        destinationLat: {} | null;
        destinationLng: {} | null;
        plannedDistance: {} | null;
        vehicleType: string | null;
        fuelType: string | null;
        purpose: {} | null;
        totalDistance: {};
        travelDuration: {};
        startedAt: {} | null;
        arrivedAt: {} | null;
        completedAt: {} | null;
        createdAt: {} | null;
        updatedAt: {} | null;
    }[] | {
        items: {
            requestId: string;
            userId: {} | null;
            user: Record<string, unknown> | null;
            requestDate: {} | null;
            clientName: {} | null;
            coordinates: {
                originLat: {} | null;
                originLng: {} | null;
                destinationLat: {} | null;
                destinationLng: {} | null;
            };
            status: string;
            rawStatus: string;
            isActive: boolean;
            hasDeparted: boolean;
            canMarkArrival: boolean;
            currentLegIndex: number;
            currentLeg: number;
            tripLegs: {
                legId: {};
                sequence: {};
                legNumber: {};
                label: string;
                fromLocation: {} | null;
                toLocation: {} | null;
                clientName: {} | null;
                purpose: {} | null;
                clientOfficeAddress: {} | null;
                isReturnLeg: boolean;
                departurePunch: {} | null;
                arrivalPunch: {} | null;
                meetingStartPunch: {} | null;
                meetingEndPunch: {} | null;
                status: string;
            }[] | {
                legNumber: number;
                label: string;
                fromLocation: {} | null;
                toLocation: {} | null;
                status: string;
                departurePunch: {
                    id: {} | null;
                    type: string;
                    punchType: string;
                    timestamp: {} | null;
                    latitude: {} | null;
                    longitude: {} | null;
                    lat: {} | null;
                    lng: {} | null;
                    address: {} | null;
                    batteryPercent: {} | null;
                    gpsAccuracy: {} | null;
                    speed: {} | null;
                } | null;
                arrivalPunch: {
                    id: {} | null;
                    type: string;
                    punchType: string;
                    timestamp: {} | null;
                    latitude: {} | null;
                    longitude: {} | null;
                    lat: {} | null;
                    lng: {} | null;
                    address: {} | null;
                    batteryPercent: {} | null;
                    gpsAccuracy: {} | null;
                    speed: {} | null;
                } | null;
            }[];
            legs: {
                legId: {};
                sequence: {};
                legNumber: {};
                label: string;
                fromLocation: {} | null;
                toLocation: {} | null;
                clientName: {} | null;
                purpose: {} | null;
                clientOfficeAddress: {} | null;
                isReturnLeg: boolean;
                departurePunch: {} | null;
                arrivalPunch: {} | null;
                meetingStartPunch: {} | null;
                meetingEndPunch: {} | null;
                status: string;
            }[] | {
                legNumber: number;
                label: string;
                fromLocation: {} | null;
                toLocation: {} | null;
                status: string;
                departurePunch: {
                    id: {} | null;
                    type: string;
                    punchType: string;
                    timestamp: {} | null;
                    latitude: {} | null;
                    longitude: {} | null;
                    lat: {} | null;
                    lng: {} | null;
                    address: {} | null;
                    batteryPercent: {} | null;
                    gpsAccuracy: {} | null;
                    speed: {} | null;
                } | null;
                arrivalPunch: {
                    id: {} | null;
                    type: string;
                    punchType: string;
                    timestamp: {} | null;
                    latitude: {} | null;
                    longitude: {} | null;
                    lat: {} | null;
                    lng: {} | null;
                    address: {} | null;
                    batteryPercent: {} | null;
                    gpsAccuracy: {} | null;
                    speed: {} | null;
                } | null;
            }[];
            punches: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            }[];
            totalDistanceKm: {} | null;
            travelAllowance: {} | null;
            fuelRatePerKm: {} | null;
            id: string;
            tripId: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            from: {} | null;
            to: {} | null;
            originLat: {} | null;
            originLng: {} | null;
            destinationLat: {} | null;
            destinationLng: {} | null;
            plannedDistance: {} | null;
            vehicleType: string | null;
            fuelType: string | null;
            purpose: {} | null;
            totalDistance: {};
            travelDuration: {};
            startedAt: {} | null;
            arrivedAt: {} | null;
            completedAt: {} | null;
            createdAt: {} | null;
            updatedAt: {} | null;
        }[];
        meta: {
            page: number;
            limit: number;
            total: number;
            totalPages: number;
            pending: number;
            completed: number;
        };
        nextCursor?: undefined;
    } | {
        items: {
            requestId: string;
            userId: {} | null;
            user: Record<string, unknown> | null;
            requestDate: {} | null;
            clientName: {} | null;
            coordinates: {
                originLat: {} | null;
                originLng: {} | null;
                destinationLat: {} | null;
                destinationLng: {} | null;
            };
            status: string;
            rawStatus: string;
            isActive: boolean;
            hasDeparted: boolean;
            canMarkArrival: boolean;
            currentLegIndex: number;
            currentLeg: number;
            tripLegs: {
                legId: {};
                sequence: {};
                legNumber: {};
                label: string;
                fromLocation: {} | null;
                toLocation: {} | null;
                clientName: {} | null;
                purpose: {} | null;
                clientOfficeAddress: {} | null;
                isReturnLeg: boolean;
                departurePunch: {} | null;
                arrivalPunch: {} | null;
                meetingStartPunch: {} | null;
                meetingEndPunch: {} | null;
                status: string;
            }[] | {
                legNumber: number;
                label: string;
                fromLocation: {} | null;
                toLocation: {} | null;
                status: string;
                departurePunch: {
                    id: {} | null;
                    type: string;
                    punchType: string;
                    timestamp: {} | null;
                    latitude: {} | null;
                    longitude: {} | null;
                    lat: {} | null;
                    lng: {} | null;
                    address: {} | null;
                    batteryPercent: {} | null;
                    gpsAccuracy: {} | null;
                    speed: {} | null;
                } | null;
                arrivalPunch: {
                    id: {} | null;
                    type: string;
                    punchType: string;
                    timestamp: {} | null;
                    latitude: {} | null;
                    longitude: {} | null;
                    lat: {} | null;
                    lng: {} | null;
                    address: {} | null;
                    batteryPercent: {} | null;
                    gpsAccuracy: {} | null;
                    speed: {} | null;
                } | null;
            }[];
            legs: {
                legId: {};
                sequence: {};
                legNumber: {};
                label: string;
                fromLocation: {} | null;
                toLocation: {} | null;
                clientName: {} | null;
                purpose: {} | null;
                clientOfficeAddress: {} | null;
                isReturnLeg: boolean;
                departurePunch: {} | null;
                arrivalPunch: {} | null;
                meetingStartPunch: {} | null;
                meetingEndPunch: {} | null;
                status: string;
            }[] | {
                legNumber: number;
                label: string;
                fromLocation: {} | null;
                toLocation: {} | null;
                status: string;
                departurePunch: {
                    id: {} | null;
                    type: string;
                    punchType: string;
                    timestamp: {} | null;
                    latitude: {} | null;
                    longitude: {} | null;
                    lat: {} | null;
                    lng: {} | null;
                    address: {} | null;
                    batteryPercent: {} | null;
                    gpsAccuracy: {} | null;
                    speed: {} | null;
                } | null;
                arrivalPunch: {
                    id: {} | null;
                    type: string;
                    punchType: string;
                    timestamp: {} | null;
                    latitude: {} | null;
                    longitude: {} | null;
                    lat: {} | null;
                    lng: {} | null;
                    address: {} | null;
                    batteryPercent: {} | null;
                    gpsAccuracy: {} | null;
                    speed: {} | null;
                } | null;
            }[];
            punches: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            }[];
            totalDistanceKm: {} | null;
            travelAllowance: {} | null;
            fuelRatePerKm: {} | null;
            id: string;
            tripId: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            from: {} | null;
            to: {} | null;
            originLat: {} | null;
            originLng: {} | null;
            destinationLat: {} | null;
            destinationLng: {} | null;
            plannedDistance: {} | null;
            vehicleType: string | null;
            fuelType: string | null;
            purpose: {} | null;
            totalDistance: {};
            travelDuration: {};
            startedAt: {} | null;
            arrivedAt: {} | null;
            completedAt: {} | null;
            createdAt: {} | null;
            updatedAt: {} | null;
        }[];
        nextCursor: string | null;
        meta?: undefined;
    }>;
    routePoints(tripId: string): Promise<{
        id: string;
        _id: import("mongoose").Types.ObjectId;
        $locals: Record<string, unknown>;
        $op: "save" | "validate" | "remove" | null;
        $where: Record<string, unknown>;
        baseModelName?: string;
        collection: import("mongoose").Collection;
        db: import("mongoose").Connection;
        errors?: import("mongoose").Error.ValidationError;
        isNew: boolean;
        schema: import("mongoose").Schema;
        tripId?: string;
        userId: string;
        clientPointId?: string;
        latitude: number;
        longitude: number;
        accuracy?: number;
        speed?: number;
        bearing?: number;
        batteryLevel?: number;
        timestamp: Date;
        isSmoothed: boolean;
        legId?: string;
        sessionId?: string;
        source?: string;
        __v: number;
    }[]>;
    getTrackingCoverage(requestId: string, actor: JwtUserPayload, legId?: string, includeEvents?: string): Promise<Record<string, unknown>>;
    getOne(requestId: string, actor: JwtUserPayload): Promise<{
        routePoints: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        route: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        trackingCoverageSummary: Record<string, unknown> | null;
        requestId: string;
        userId: {} | null;
        user: Record<string, unknown> | null;
        requestDate: {} | null;
        clientName: {} | null;
        coordinates: {
            originLat: {} | null;
            originLng: {} | null;
            destinationLat: {} | null;
            destinationLng: {} | null;
        };
        status: string;
        rawStatus: string;
        isActive: boolean;
        hasDeparted: boolean;
        canMarkArrival: boolean;
        currentLegIndex: number;
        currentLeg: number;
        tripLegs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        legs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        punches: {
            id: {} | null;
            type: string;
            punchType: string;
            timestamp: {} | null;
            latitude: {} | null;
            longitude: {} | null;
            lat: {} | null;
            lng: {} | null;
            address: {} | null;
            batteryPercent: {} | null;
            gpsAccuracy: {} | null;
            speed: {} | null;
        }[];
        totalDistanceKm: {} | null;
        travelAllowance: {} | null;
        fuelRatePerKm: {} | null;
        id: string;
        tripId: string;
        fromLocation: {} | null;
        toLocation: {} | null;
        from: {} | null;
        to: {} | null;
        originLat: {} | null;
        originLng: {} | null;
        destinationLat: {} | null;
        destinationLng: {} | null;
        plannedDistance: {} | null;
        vehicleType: string | null;
        fuelType: string | null;
        purpose: {} | null;
        totalDistance: {};
        travelDuration: {};
        startedAt: {} | null;
        arrivedAt: {} | null;
        completedAt: {} | null;
        createdAt: {} | null;
        updatedAt: {} | null;
    }>;
    update(requestId: string, actor: JwtUserPayload, body: Record<string, unknown>): Promise<{
        requestId: string;
        userId: {} | null;
        user: Record<string, unknown> | null;
        requestDate: {} | null;
        clientName: {} | null;
        coordinates: {
            originLat: {} | null;
            originLng: {} | null;
            destinationLat: {} | null;
            destinationLng: {} | null;
        };
        status: string;
        rawStatus: string;
        isActive: boolean;
        hasDeparted: boolean;
        canMarkArrival: boolean;
        currentLegIndex: number;
        currentLeg: number;
        tripLegs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        legs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        punches: {
            id: {} | null;
            type: string;
            punchType: string;
            timestamp: {} | null;
            latitude: {} | null;
            longitude: {} | null;
            lat: {} | null;
            lng: {} | null;
            address: {} | null;
            batteryPercent: {} | null;
            gpsAccuracy: {} | null;
            speed: {} | null;
        }[];
        totalDistanceKm: {} | null;
        travelAllowance: {} | null;
        fuelRatePerKm: {} | null;
        id: string;
        tripId: string;
        fromLocation: {} | null;
        toLocation: {} | null;
        from: {} | null;
        to: {} | null;
        originLat: {} | null;
        originLng: {} | null;
        destinationLat: {} | null;
        destinationLng: {} | null;
        plannedDistance: {} | null;
        vehicleType: string | null;
        fuelType: string | null;
        purpose: {} | null;
        totalDistance: {};
        travelDuration: {};
        startedAt: {} | null;
        arrivedAt: {} | null;
        completedAt: {} | null;
        createdAt: {} | null;
        updatedAt: {} | null;
    }>;
    remove(requestId: string, actor: JwtUserPayload): Promise<{
        ok: boolean;
        tripId: string;
    }>;
    addNextClient(requestId: string, actor: JwtUserPayload, body: AddNextClientDto): Promise<{
        routePoints: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        route: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        trackingCoverageSummary: Record<string, unknown> | null;
        requestId: string;
        userId: {} | null;
        user: Record<string, unknown> | null;
        requestDate: {} | null;
        clientName: {} | null;
        coordinates: {
            originLat: {} | null;
            originLng: {} | null;
            destinationLat: {} | null;
            destinationLng: {} | null;
        };
        status: string;
        rawStatus: string;
        isActive: boolean;
        hasDeparted: boolean;
        canMarkArrival: boolean;
        currentLegIndex: number;
        currentLeg: number;
        tripLegs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        legs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        punches: {
            id: {} | null;
            type: string;
            punchType: string;
            timestamp: {} | null;
            latitude: {} | null;
            longitude: {} | null;
            lat: {} | null;
            lng: {} | null;
            address: {} | null;
            batteryPercent: {} | null;
            gpsAccuracy: {} | null;
            speed: {} | null;
        }[];
        totalDistanceKm: {} | null;
        travelAllowance: {} | null;
        fuelRatePerKm: {} | null;
        id: string;
        tripId: string;
        fromLocation: {} | null;
        toLocation: {} | null;
        from: {} | null;
        to: {} | null;
        originLat: {} | null;
        originLng: {} | null;
        destinationLat: {} | null;
        destinationLng: {} | null;
        plannedDistance: {} | null;
        vehicleType: string | null;
        fuelType: string | null;
        purpose: {} | null;
        totalDistance: {};
        travelDuration: {};
        startedAt: {} | null;
        arrivedAt: {} | null;
        completedAt: {} | null;
        createdAt: {} | null;
        updatedAt: {} | null;
    }>;
    returnStart(requestId: string, actor: JwtUserPayload, body: Record<string, unknown>): Promise<{
        routePoints: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        route: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        trackingCoverageSummary: Record<string, unknown> | null;
        requestId: string;
        userId: {} | null;
        user: Record<string, unknown> | null;
        requestDate: {} | null;
        clientName: {} | null;
        coordinates: {
            originLat: {} | null;
            originLng: {} | null;
            destinationLat: {} | null;
            destinationLng: {} | null;
        };
        status: string;
        rawStatus: string;
        isActive: boolean;
        hasDeparted: boolean;
        canMarkArrival: boolean;
        currentLegIndex: number;
        currentLeg: number;
        tripLegs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        legs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        punches: {
            id: {} | null;
            type: string;
            punchType: string;
            timestamp: {} | null;
            latitude: {} | null;
            longitude: {} | null;
            lat: {} | null;
            lng: {} | null;
            address: {} | null;
            batteryPercent: {} | null;
            gpsAccuracy: {} | null;
            speed: {} | null;
        }[];
        totalDistanceKm: {} | null;
        travelAllowance: {} | null;
        fuelRatePerKm: {} | null;
        id: string;
        tripId: string;
        fromLocation: {} | null;
        toLocation: {} | null;
        from: {} | null;
        to: {} | null;
        originLat: {} | null;
        originLng: {} | null;
        destinationLat: {} | null;
        destinationLng: {} | null;
        plannedDistance: {} | null;
        vehicleType: string | null;
        fuelType: string | null;
        purpose: {} | null;
        totalDistance: {};
        travelDuration: {};
        startedAt: {} | null;
        arrivedAt: {} | null;
        completedAt: {} | null;
        createdAt: {} | null;
        updatedAt: {} | null;
    }>;
    meetingStart(requestId: string, actor: JwtUserPayload, body: Record<string, unknown>): Promise<{
        routePoints: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        route: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        trackingCoverageSummary: Record<string, unknown> | null;
        requestId: string;
        userId: {} | null;
        user: Record<string, unknown> | null;
        requestDate: {} | null;
        clientName: {} | null;
        coordinates: {
            originLat: {} | null;
            originLng: {} | null;
            destinationLat: {} | null;
            destinationLng: {} | null;
        };
        status: string;
        rawStatus: string;
        isActive: boolean;
        hasDeparted: boolean;
        canMarkArrival: boolean;
        currentLegIndex: number;
        currentLeg: number;
        tripLegs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        legs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        punches: {
            id: {} | null;
            type: string;
            punchType: string;
            timestamp: {} | null;
            latitude: {} | null;
            longitude: {} | null;
            lat: {} | null;
            lng: {} | null;
            address: {} | null;
            batteryPercent: {} | null;
            gpsAccuracy: {} | null;
            speed: {} | null;
        }[];
        totalDistanceKm: {} | null;
        travelAllowance: {} | null;
        fuelRatePerKm: {} | null;
        id: string;
        tripId: string;
        fromLocation: {} | null;
        toLocation: {} | null;
        from: {} | null;
        to: {} | null;
        originLat: {} | null;
        originLng: {} | null;
        destinationLat: {} | null;
        destinationLng: {} | null;
        plannedDistance: {} | null;
        vehicleType: string | null;
        fuelType: string | null;
        purpose: {} | null;
        totalDistance: {};
        travelDuration: {};
        startedAt: {} | null;
        arrivedAt: {} | null;
        completedAt: {} | null;
        createdAt: {} | null;
        updatedAt: {} | null;
    }>;
    meetingEnd(requestId: string, actor: JwtUserPayload, body: Record<string, unknown>): Promise<{
        routePoints: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        route: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        trackingCoverageSummary: Record<string, unknown> | null;
        requestId: string;
        userId: {} | null;
        user: Record<string, unknown> | null;
        requestDate: {} | null;
        clientName: {} | null;
        coordinates: {
            originLat: {} | null;
            originLng: {} | null;
            destinationLat: {} | null;
            destinationLng: {} | null;
        };
        status: string;
        rawStatus: string;
        isActive: boolean;
        hasDeparted: boolean;
        canMarkArrival: boolean;
        currentLegIndex: number;
        currentLeg: number;
        tripLegs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        legs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        punches: {
            id: {} | null;
            type: string;
            punchType: string;
            timestamp: {} | null;
            latitude: {} | null;
            longitude: {} | null;
            lat: {} | null;
            lng: {} | null;
            address: {} | null;
            batteryPercent: {} | null;
            gpsAccuracy: {} | null;
            speed: {} | null;
        }[];
        totalDistanceKm: {} | null;
        travelAllowance: {} | null;
        fuelRatePerKm: {} | null;
        id: string;
        tripId: string;
        fromLocation: {} | null;
        toLocation: {} | null;
        from: {} | null;
        to: {} | null;
        originLat: {} | null;
        originLng: {} | null;
        destinationLat: {} | null;
        destinationLng: {} | null;
        plannedDistance: {} | null;
        vehicleType: string | null;
        fuelType: string | null;
        purpose: {} | null;
        totalDistance: {};
        travelDuration: {};
        startedAt: {} | null;
        arrivedAt: {} | null;
        completedAt: {} | null;
        createdAt: {} | null;
        updatedAt: {} | null;
    }>;
    departure(requestId: string, actor: JwtUserPayload, body: Record<string, unknown>): Promise<{
        routePoints: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        route: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        trackingCoverageSummary: Record<string, unknown> | null;
        requestId: string;
        userId: {} | null;
        user: Record<string, unknown> | null;
        requestDate: {} | null;
        clientName: {} | null;
        coordinates: {
            originLat: {} | null;
            originLng: {} | null;
            destinationLat: {} | null;
            destinationLng: {} | null;
        };
        status: string;
        rawStatus: string;
        isActive: boolean;
        hasDeparted: boolean;
        canMarkArrival: boolean;
        currentLegIndex: number;
        currentLeg: number;
        tripLegs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        legs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        punches: {
            id: {} | null;
            type: string;
            punchType: string;
            timestamp: {} | null;
            latitude: {} | null;
            longitude: {} | null;
            lat: {} | null;
            lng: {} | null;
            address: {} | null;
            batteryPercent: {} | null;
            gpsAccuracy: {} | null;
            speed: {} | null;
        }[];
        totalDistanceKm: {} | null;
        travelAllowance: {} | null;
        fuelRatePerKm: {} | null;
        id: string;
        tripId: string;
        fromLocation: {} | null;
        toLocation: {} | null;
        from: {} | null;
        to: {} | null;
        originLat: {} | null;
        originLng: {} | null;
        destinationLat: {} | null;
        destinationLng: {} | null;
        plannedDistance: {} | null;
        vehicleType: string | null;
        fuelType: string | null;
        purpose: {} | null;
        totalDistance: {};
        travelDuration: {};
        startedAt: {} | null;
        arrivedAt: {} | null;
        completedAt: {} | null;
        createdAt: {} | null;
        updatedAt: {} | null;
    }>;
    arrival(requestId: string, actor: JwtUserPayload, body: Record<string, unknown>): Promise<{
        routePoints: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        route: {
            id: {} | null;
            latitude: unknown;
            longitude: unknown;
            lat: unknown;
            lng: unknown;
            timestamp: {} | null;
            accuracy: {} | null;
            speed: {} | null;
        }[];
        trackingCoverageSummary: Record<string, unknown> | null;
        requestId: string;
        userId: {} | null;
        user: Record<string, unknown> | null;
        requestDate: {} | null;
        clientName: {} | null;
        coordinates: {
            originLat: {} | null;
            originLng: {} | null;
            destinationLat: {} | null;
            destinationLng: {} | null;
        };
        status: string;
        rawStatus: string;
        isActive: boolean;
        hasDeparted: boolean;
        canMarkArrival: boolean;
        currentLegIndex: number;
        currentLeg: number;
        tripLegs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        legs: {
            legId: {};
            sequence: {};
            legNumber: {};
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            clientName: {} | null;
            purpose: {} | null;
            clientOfficeAddress: {} | null;
            isReturnLeg: boolean;
            departurePunch: {} | null;
            arrivalPunch: {} | null;
            meetingStartPunch: {} | null;
            meetingEndPunch: {} | null;
            status: string;
        }[] | {
            legNumber: number;
            label: string;
            fromLocation: {} | null;
            toLocation: {} | null;
            status: string;
            departurePunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
            arrivalPunch: {
                id: {} | null;
                type: string;
                punchType: string;
                timestamp: {} | null;
                latitude: {} | null;
                longitude: {} | null;
                lat: {} | null;
                lng: {} | null;
                address: {} | null;
                batteryPercent: {} | null;
                gpsAccuracy: {} | null;
                speed: {} | null;
            } | null;
        }[];
        punches: {
            id: {} | null;
            type: string;
            punchType: string;
            timestamp: {} | null;
            latitude: {} | null;
            longitude: {} | null;
            lat: {} | null;
            lng: {} | null;
            address: {} | null;
            batteryPercent: {} | null;
            gpsAccuracy: {} | null;
            speed: {} | null;
        }[];
        totalDistanceKm: {} | null;
        travelAllowance: {} | null;
        fuelRatePerKm: {} | null;
        id: string;
        tripId: string;
        fromLocation: {} | null;
        toLocation: {} | null;
        from: {} | null;
        to: {} | null;
        originLat: {} | null;
        originLng: {} | null;
        destinationLat: {} | null;
        destinationLng: {} | null;
        plannedDistance: {} | null;
        vehicleType: string | null;
        fuelType: string | null;
        purpose: {} | null;
        totalDistance: {};
        travelDuration: {};
        startedAt: {} | null;
        arrivedAt: {} | null;
        completedAt: {} | null;
        createdAt: {} | null;
        updatedAt: {} | null;
    }>;
    routePointsBatch(tripId: string, actor: JwtUserPayload, body: Record<string, unknown>): Promise<{
        inserted: number;
        tripId: string;
    }>;
    trackingEventsBatch(requestId: string, actor: JwtUserPayload, body: Record<string, unknown>): Promise<{
        inserted: number;
        requestId: string;
    }>;
}
