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"
}
export declare enum PaymentMode {
    Stripe = "stripe",
    Cashfree = "cashfree",
    Razorpay = "razorpay"
}
export declare enum BookingType {
    Current = "current",
    Schedule = "schedule"
}
export declare enum RequestType {
    Parcel = "parcel",
    Ride = "ride",
    intercity = "intercity",
    Hourly = "hourly"
}
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 GenderPrefrence {
    Female = "female",
    None = "none",
    Male = "male"
}
export declare enum RequestedBy {
    Customer = "customer",
    Driver = "driver",
    Company = "company",
    Agent = "agent"
}
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 class Booking {
    customer_id: string;
    company_id: string;
    company_client_id: string;
    dispatcher_id: string;
    assigned_by: string;
    driver_id: string;
    agent_customer_id: string;
    agent_id: string;
    pass_id: mongosse.Types.ObjectId;
    booking_id: string;
    rzr_order_id: string;
    stripe_intent_id: string;
    payment_id: string;
    is_salaried_booking: boolean;
    cashfree_order_id: string;
    cashfree_refund_id: string;
    refund_confirmed: boolean;
    payment_session_id: string;
    you_earn: number;
    routeUrl: string;
    is_request_type_broadcast: boolean;
    request_type: RequestType;
    sender_name: 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;
    parcel_details: string;
    airport_pickup_charges: number;
    cancellation_charges: number;
    airport_drop_charges: number;
    arrived_at_intercity_destination: number;
    started_from_intercity_destination: number;
    coupon_id: string;
    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;
    pickup_lat: string;
    pickup_long: string;
    total_distance_covered: number;
    drop_lat: string;
    drop_long: string;
    stops: {
        name: string;
        lat: String;
        long: String;
    }[];
    app_commission: number;
    app_commission_value: number;
    app_commission_unit: string;
    arrived_at_stop_1: number;
    started_from_stop_1: 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;
    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;
    base_fee: number;
    base_fee_with_discount: number;
    stop_charges: number;
    surcharge_amount: number;
    agent_commission: number;
    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;
    return_trip_charges: number;
    night_stay_charges: number;
    gender_prefrence: GenderPrefrence;
    ride_otp: number;
    waiting_charge_per_min: number;
    is_waiting_charge_noti_send: boolean;
    is_stop1_charge_noti_send: boolean;
    is_stop2_charge_noti_send: boolean;
    rate_by_customer: boolean;
    rate_by_driver: boolean;
    extimated_delivery_time: string;
    start_ride_at: number;
    last_stop_charges_mins: number;
    return_trip: boolean;
    night_stay: boolean;
    last_stop2_charges_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;
    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_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;
    fare_breakdown: any;
    booking_for: string;
}
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;
}>;
