import { HydratedDocument } from 'mongoose';
import * as mongosse from 'mongoose';
export declare enum BookingStatus {
    Request = "request",
    Ongoing = "current",
    Completed = "completed",
    Accept = "accepted",
    Cancelled = "cancelled",
    Failed = "failed",
    Pending = "pending_payment",
    VehicleUnavailable = "vehicle_unavailable"
}
export declare enum PaymentMode {
    Stripe = "stripe",
    Cashfree = "cashfree",
    Razorpay = "razorpay"
}
export declare enum BookingType {
    Current = "current",
    Schedule = "schedule"
}
export declare enum BookingTypeForGrouping {
    Multiple = "multiple",
    Single = "single"
}
export declare enum RequestType {
    Parcel = "parcel",
    Ride = "ride",
    intercity = "intercity",
    Hourly = "hourly",
    Daily = "daily",
    SelfDrive = "self_drive",
    Airport = "airport_transfer",
    Carpool = "carpool",
    Package = "package"
}
export declare enum RideStatus {
    AtPickup = "reached_at_pickup",
    RideStart = "start_ride",
    Atdestination = "reached_at_stop_1",
    RideCompleted = "started_from_Stop_1",
    reached_at_stop_2 = "reached_at_stop_2",
    started_from_Stop_2 = "started_from_Stop_2"
}
export declare enum BodyPreference {
    Open = "open",
    Closed = "close",
    Any = "any"
}
export declare enum GenderPrefrence {
    Female = "female",
    None = "none",
    Male = "male"
}
export declare enum RequestedBy {
    Customer = "customer",
    Driver = "driver",
    Company = "company",
    Agent = "agent",
    Admin = "admin"
}
export declare enum CommissionType {
    Commission = "commission",
    Pass = "pass"
}
export declare enum BookingFor {
    Customer = "customer",
    Company = "company",
    CompanyRider = "company_rider",
    CompanyClient = "company_client",
    AgentCustomer = "agent_customer"
}
export declare enum PickupOption {
    SelfPickup = "self_pickup",
    DoorStep = "door_step"
}
export declare class Booking {
    customer_id: string;
    package_id: string;
    parent_booking_id: string;
    booking_group_id: string;
    vehicle_count: number;
    duration_fare_return_trip: number;
    duration_fare_single_trip: number;
    vehicle_sequence: number;
    company_id: string;
    company_client_id: string;
    dispatcher_id: string;
    type: string;
    assigned_by: string;
    driver_id: string;
    agent_customer_id: string;
    agent_id: string;
    pass_id: mongosse.Types.ObjectId;
    invoice_id: string;
    booking_id: string;
    is_cancellation_requested: string;
    ride_type: string;
    pickup_option: string;
    rzr_order_id: string;
    stripe_intent_id: string;
    distance_to_pickup: number;
    distance_to_drop: number;
    payment_id: string;
    is_salaried_booking: boolean;
    need_load_unload: boolean;
    cashfree_order_id: string;
    total_payable_amount: number;
    deposit_amount: number;
    incentive_applied: number;
    incentive: number;
    vehicle_body_preference: string;
    number_of_days: number;
    per_day_charges: number;
    load_unload_charges: number;
    delivery_charges: number;
    days_exceed: number;
    cashfree_refund_id: string;
    refund_confirmed: boolean;
    is_ac_ride: boolean;
    is_share_ride: boolean;
    share_ride_session_id: string;
    payment_session_id: string;
    you_earn: number;
    return_requested_at: number;
    eta_return_trip: number;
    eta: number;
    per_minute_charges: number;
    base_minutes: number;
    you_earn_commission: number;
    you_earn_pass: number;
    free_load_unload_time: number;
    cancellation_charges_paid: number;
    routeUrl: string;
    is_request_type_broadcast: boolean;
    request_type: RequestType;
    sender_name: string;
    address_language: string;
    sender_country_code: string;
    sender_number: string;
    receiver_name: string;
    receiver_country_code: string;
    commission_type: string;
    fleet_id: mongosse.Types.ObjectId;
    requested_fleet_id: mongosse.Types.ObjectId;
    receiver_number: string;
    is_broadcast: boolean;
    is_bundle_booking: boolean;
    bundle_name: string;
    bundle_image: string;
    parcel_details: string;
    airport_pickup_charges: number;
    cancellation_charges: number;
    airport_drop_charges: number;
    flight_number: string;
    is_airport_pickup: boolean;
    is_airport_dropoff: boolean;
    arrived_at_intercity_destination: number;
    started_from_intercity_destination: number;
    coupon_id: string;
    vehicle_id: string;
    original_vehicle_id: string;
    vehicleDetail_id: string;
    payment_confirmed: boolean;
    parcel_img_at_pickup: string;
    parcel_img_at_drop: string;
    payment_received: boolean;
    pickup_address: string;
    drop_address: string;
    return_pickup_address: string;
    return_drop_address: string;
    pickup_lat: string;
    pickup_long: string;
    return_pickup_lat: string;
    return_pickup_long: string;
    total_distance_covered: number;
    drop_lat: string;
    drop_long: string;
    return_drop_lat: string;
    return_drop_long: string;
    paid_amount: number;
    pending_amount: number;
    stops: {
        name: string;
        lat: String;
        long: String;
    }[];
    return_stops: {
        name: string;
        lat: String;
        long: String;
    }[];
    app_commission: number;
    app_commission_value: number;
    insurance_multiplier: number;
    app_commission_unit: 'percentage' | 'fixed';
    arrived_at_stop_1: number;
    started_from_stop_1: number;
    arrived_at_return_stop_1: number;
    started_from_return_stop_1: number;
    arrived_at_return_stop_2: number;
    started_from_return_stop_2: number;
    total_rental_hours: number;
    total_hours: number;
    extra_hours: number;
    admin_amount: number;
    payout_amount: number;
    extra_hours_amount: number;
    extra_kms_amount: number;
    extra_kms: number;
    arrived_at_stop_2: number;
    started_from_stop_2: number;
    arrived_pickup_loc_at: number;
    schedule_date: number;
    drop_time: number;
    exceeded_drop_time: number;
    booking_status: string;
    booking_type: string;
    ride_status: string;
    cancelled_reason: string;
    is_ride_started: boolean;
    sent_dispatch_noti: boolean;
    booking_reminder_noti: boolean;
    cancelled_by: string;
    payment_gateway: string;
    payment_method: string;
    payment_method_id: string;
    payment_status: string;
    distance_in_km: number;
    single_way_distance: number;
    return_trip_distance: number;
    base_fee: number;
    base_fee_with_discount: number;
    stop_charges: number;
    surcharge_amount: number;
    agent_commission: number;
    agent_commission_percentage: string;
    surcharge_multiplier: number;
    toll_price: number;
    tip_driver: number;
    gst: number;
    commission_gst_amount: number;
    payout_gst_amount: number;
    coupon_discount: number;
    total_amount: number;
    deduction_of_return_trip: number;
    cancellation_total: number;
    return_trip_charges: number;
    night_stay_charges: number;
    gender_prefrence: GenderPrefrence;
    ride_otp: number;
    is_return_trip_active: boolean;
    return_trip_otp: number;
    waiting_charge_per_min: number;
    is_waiting_charge_noti_send: boolean;
    is_unloading_charge_noti_send: boolean;
    is_stop1_charge_noti_send: boolean;
    is_stop2_charge_noti_send: boolean;
    is_return_stop1_charge_noti_send: boolean;
    is_return_stop2_charge_noti_send: boolean;
    is_intercity_waiting_noti_send: boolean;
    rate_by_customer: boolean;
    rate_by_driver: boolean;
    is_driver_assigned_automatically: boolean;
    extimated_delivery_time: string;
    start_ride_at: number;
    reached_destination: number;
    last_stop_charges_mins: number;
    last_unloading_charges_mins: number;
    return_trip: boolean;
    night_stay: boolean;
    last_stop2_charges_mins: number;
    last_return_stop1_charges_mins: number;
    last_return_stop2_charges_mins: number;
    last_intercity_waiting_mins: number;
    last_start_ride_charges_mins: number;
    complete_delivery_at: number;
    is_volunteer: boolean;
    filter: string[];
    created_at: number;
    updated_at: number;
    requested_by: string;
    guest_name: string;
    guest_country_code: string;
    guest_phone: string;
    guest_alternate_country_code: string;
    guest_alternate_phone: string;
    hourly_rate: number;
    hourly_km_rate: number;
    hourly_max_km: number;
    kms_limit: number;
    add_up_kms: number;
    insurance_fees: number;
    insurance_fees_multiplier: number;
    city_fees: number;
    city_fees_value: number;
    city_fees_unit: string;
    infrastructure_fees: number;
    commission_percentage: number;
    intercity_commision_percentage: number;
    basic_trip_amount: number;
    total_trip_price_to_be_paid_by_customer: number;
    booking_for: string;
    number_of_seats: number;
}
export type BookingDocment = HydratedDocument<Booking>;
export declare const BookingModel: mongosse.Schema<Booking, mongosse.Model<Booking, any, any, any, mongosse.Document<unknown, any, Booking, any, {}> & Booking & {
    _id: mongosse.Types.ObjectId;
} & {
    __v: number;
}, any>, {}, {}, {}, {}, mongosse.DefaultSchemaOptions, Booking, mongosse.Document<unknown, {}, mongosse.FlatRecord<Booking>, {}, mongosse.ResolveSchemaOptions<mongosse.DefaultSchemaOptions>> & mongosse.FlatRecord<Booking> & {
    _id: mongosse.Types.ObjectId;
} & {
    __v: number;
}>;
