import mongoose, { HydratedDocument } from 'mongoose';
export declare enum ShareRideSessionStatus {
    Open = "open",
    Locked = "locked",
    Boarding = "boarding",
    InProgress = "in_progress",
    Completed = "completed",
    Cancelled = "cancelled"
}
export declare enum PickupSequenceType {
    Pickup = "pickup",
    Drop = "drop"
}
export declare class PickupSequenceItem {
    step: number;
    type: PickupSequenceType;
    booking_id: mongoose.Types.ObjectId;
    passenger_name: string;
    passenger_phone: string;
    address: string;
    lat: number;
    lng: number;
    done: boolean;
    done_at: number;
    number_of_seats: number;
}
export declare class ShareRideSession {
    session_id: string;
    driver_id: mongoose.Types.ObjectId;
    vehicle_id: mongoose.Types.ObjectId;
    booking_ids: mongoose.Types.ObjectId[];
    max_passengers: number;
    status: ShareRideSessionStatus;
    pickup_sequence: PickupSequenceItem[];
    current_step: number;
    discount_percent: number;
    is_ac_ride: boolean;
    created_at: number;
    updated_at: number;
}
export type ShareRideSessionDocument = HydratedDocument<ShareRideSession>;
export declare const ShareRideSessionModel: mongoose.Schema<ShareRideSession, mongoose.Model<ShareRideSession, any, any, any, mongoose.Document<unknown, any, ShareRideSession, any, {}> & ShareRideSession & {
    _id: mongoose.Types.ObjectId;
} & {
    __v: number;
}, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, ShareRideSession, mongoose.Document<unknown, {}, mongoose.FlatRecord<ShareRideSession>, {}, mongoose.ResolveSchemaOptions<mongoose.DefaultSchemaOptions>> & mongoose.FlatRecord<ShareRideSession> & {
    _id: mongoose.Types.ObjectId;
} & {
    __v: number;
}>;
