import { HydratedDocument } from 'mongoose';
import { FuelType, TripStatus, VehicleType } from '../../common/constants/enums';
export type TripDocument = HydratedDocument<Trip>;
export declare class Trip {
    tripId: string;
    userId: string;
    requestDate: Date;
    city?: string;
    fromLocation?: string;
    toLocation?: string;
    originLat?: number;
    originLng?: number;
    clientName?: string;
    destinationLat?: number;
    destinationLng?: number;
    googlePlaceId?: string;
    plannedDistance?: number;
    vehicleType?: VehicleType;
    fuelType?: FuelType;
    purpose?: string;
    status: TripStatus;
    totalDistance: number;
    travelDuration: number;
    idleTime: number;
    meetingDuration: number;
    productivityScore?: number;
    tripEfficiency?: number;
    startedAt?: Date;
    arrivedAt?: Date;
    completedAt?: Date;
    tripLegs?: Record<string, unknown>[];
    currentLegIndex?: number;
}
export declare const TripSchema: import("mongoose").Schema<Trip, import("mongoose").Model<Trip, any, any, any, any, any, Trip>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Trip, import("mongoose").Document<unknown, {}, Trip, {
    id: string;
}, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
    _id: import("mongoose").Types.ObjectId;
} & {
    __v: number;
}, "id"> & {
    id: string;
}, {
    tripId?: import("mongoose").SchemaDefinitionProperty<string, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    userId?: import("mongoose").SchemaDefinitionProperty<string, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    requestDate?: import("mongoose").SchemaDefinitionProperty<Date, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    city?: import("mongoose").SchemaDefinitionProperty<string | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    fromLocation?: import("mongoose").SchemaDefinitionProperty<string | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    toLocation?: import("mongoose").SchemaDefinitionProperty<string | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    originLat?: import("mongoose").SchemaDefinitionProperty<number | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    originLng?: import("mongoose").SchemaDefinitionProperty<number | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    clientName?: import("mongoose").SchemaDefinitionProperty<string | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    destinationLat?: import("mongoose").SchemaDefinitionProperty<number | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    destinationLng?: import("mongoose").SchemaDefinitionProperty<number | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    googlePlaceId?: import("mongoose").SchemaDefinitionProperty<string | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    plannedDistance?: import("mongoose").SchemaDefinitionProperty<number | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    vehicleType?: import("mongoose").SchemaDefinitionProperty<VehicleType | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    fuelType?: import("mongoose").SchemaDefinitionProperty<FuelType | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    purpose?: import("mongoose").SchemaDefinitionProperty<string | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    status?: import("mongoose").SchemaDefinitionProperty<TripStatus, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    totalDistance?: import("mongoose").SchemaDefinitionProperty<number, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    travelDuration?: import("mongoose").SchemaDefinitionProperty<number, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    idleTime?: import("mongoose").SchemaDefinitionProperty<number, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    meetingDuration?: import("mongoose").SchemaDefinitionProperty<number, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    productivityScore?: import("mongoose").SchemaDefinitionProperty<number | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    tripEfficiency?: import("mongoose").SchemaDefinitionProperty<number | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    startedAt?: import("mongoose").SchemaDefinitionProperty<Date | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    arrivedAt?: import("mongoose").SchemaDefinitionProperty<Date | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    completedAt?: import("mongoose").SchemaDefinitionProperty<Date | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    tripLegs?: import("mongoose").SchemaDefinitionProperty<Record<string, unknown>[] | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    currentLegIndex?: import("mongoose").SchemaDefinitionProperty<number | undefined, Trip, import("mongoose").Document<unknown, {}, Trip, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<Trip & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
}, Trip>;
