import mongoose, { HydratedDocument } from 'mongoose';
export declare class HandoverHistoryLog {
    status: string;
    triggered_by: string;
    driver_id: string;
    remark: string;
    created_at: number;
}
export declare enum HandoverStatus {
    Pending = "pending",
    Accepted = "accepted",
    Completed = "completed",
    Cancelled = "cancelled",
    Rejected = "rejected"
}
export declare enum Driver1HandoverStatus {
    WaitingNewDriver = "waiting_new_driver",
    HandoverGiven = "handover_given"
}
export declare enum Driver2HandoverStatus {
    AcceptedOnTheWay = "accepted_on_the_way",
    ReachedHandoverLocation = "reached_handover_location",
    HandoverReceived = "handover_received"
}
export declare class OrderHandover {
    order_id: string;
    customer_id: string;
    previous_driver_id: string;
    previous_driver_location: {
        latitude: string;
        longitude: string;
        address: string;
    };
    new_driver_id: string;
    driver1_placed_address: string;
    driver2_placed_address: string;
    reassign_reason: string;
    handover_open_for: string[];
    handover_notification_count: number;
    handover_status: HandoverStatus;
    driver1_status: Driver1HandoverStatus;
    driver2_status: Driver2HandoverStatus;
    requested_at: number;
    accepted_at: number;
    completed_at: number;
    cancelled_at: number;
    handover_status_history: HandoverHistoryLog[];
}
export type OrderHandoverDocument = HydratedDocument<OrderHandover>;
export declare const OrderHandoverModel: mongoose.Schema<OrderHandover, mongoose.Model<OrderHandover, any, any, any, mongoose.Document<unknown, any, OrderHandover, any, {}> & OrderHandover & {
    _id: mongoose.Types.ObjectId;
} & {
    __v: number;
}, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, OrderHandover, mongoose.Document<unknown, {}, mongoose.FlatRecord<OrderHandover>, {}, mongoose.ResolveSchemaOptions<mongoose.DefaultSchemaOptions>> & mongoose.FlatRecord<OrderHandover> & {
    _id: mongoose.Types.ObjectId;
} & {
    __v: number;
}>;
