import { RequestType } from '../schema/booking.schema';
declare class Stop {
    name: string;
    lat: string;
    long: string;
}
export declare enum Status {
    Drivers = "drivers",
    AvailableNow = "available_now"
}
export declare enum requestStatus {
    Ride = "ride",
    Parcel = "parcel",
    intercity = "intercity",
    hourly = "hourly"
}
export declare enum RequestedBy {
    Customer = "customer",
    Driver = "driver",
    Company = "company",
    Agent = "agent"
}
export declare class CreateBookingDto {
    booking_type: string;
    pickup_address: string;
    drop_address: string;
    pick_up_lat: string;
    pick_up_long: string;
    drop_lat: string;
    drop_long: string;
    stops: Stop[];
    vehicle_id: string;
    payment_method: string;
    payment_method_id: string;
    coupon_id: string;
    filter: string[];
    request_type: RequestType;
    sender_name: string;
    sender_country_code: string;
    sender_number: string;
    receiver_name: string;
    receiver_country_code: string;
    receiver_number: string;
    parcel_details: string;
    return_trip: boolean;
    night_stay: boolean;
    gender_prefrence: string;
    requested_by: RequestedBy;
    agent_id: string;
    guest_name: string;
    guest_phone: string;
    guest_country_code: string;
    is_airport_pickup: boolean;
    is_airport_drop: boolean;
    company_id: string;
    company_client_id?: string;
    booking_for: string;
}
export declare class ScheduleBookingDto {
    pickup_address: string;
    drop_address: string;
    pick_up_lat: string;
    pick_up_long: string;
    drop_lat: string;
    drop_long: string;
    stops: Stop[];
    scheduled_date: number;
    booking_type: string;
    vehicle_id: string;
    vehicle_name: string;
    base_fee: string;
    payment_method: string;
    coupon_id: string;
    request_type: requestStatus;
    night_stay: boolean;
    return_trip: boolean;
    gender_prefrence: string;
    requested_by: RequestedBy;
    agent_id: string;
    booking_for: string;
}
export declare class CreateBookingByDispatcherDto extends ScheduleBookingDto {
    user_id?: string;
    name: string;
    email: string;
    country_code: string;
    phone: string;
}
export declare class UpdateTipPaymentTypeDto {
    id: string;
    tip: number;
    payment_type: string;
    payment_method_id: string;
}
export declare class findBookingListDto {
    id: string;
}
export declare class getReceiptDto {
    _id: string;
}
export declare class CalculateVehiclePriceDto {
    pick_up_lat: string;
    pick_up_long: string;
    drop_lat: string;
    drop_long: string;
    stops: Stop[];
    filter: string[];
    request_type: requestStatus;
    night_stay: boolean;
    return_trip: boolean;
    gender_prefrence: string;
    total_hours: number;
    is_airport_pickup: boolean;
    is_airport_drop: boolean;
}
export declare class UpdateBookingDto {
    stops: Stop[];
}
export declare class AddtipDto {
    tip_amount: number;
}
export declare enum BookingStatus {
    Current = "current",
    Past = "past"
}
export declare class BookingStatusDto {
    status: string;
    page: number;
    limit: number;
}
export declare class driverResponseDto {
    driverId: string;
    response: string;
    booking_id: string;
}
export declare class CancelBookingDto {
    cancelled_reason: string;
}
export declare class ConfirmStopsDto {
    status: string;
    stop_address: string;
}
export declare class AvailableCouponDto {
    amount: number;
    search?: string;
}
export declare class findBookingDto {
    status: 'accepted' | 'completed' | 'cancelled' | 'failed';
    search?: string;
    page: number;
    limit: number;
}
export declare class RideStatus {
    booking_id: string;
    otp: number;
    parcel_img: string;
    status: 'reached_at_pickup' | 'start_ride' | 'reached_at_stop_1' | 'started_from_Stop_1' | 'reached_at_stop_2' | 'started_from_Stop_2' | 'ride_completed';
}
export declare class RideCompletedDto {
    parcel_img: string;
}
export declare class AssignDriverDto {
    driver_id: string;
}
export declare class AssignFleetDto {
    fleet_id: string;
}
export declare enum DispatcherBookingStatus {
    upcoming = "upcoming",
    ongoing = "ongoing",
    completed = "completed",
    AssignByMe = "assign_by_me",
    AssignForBooking = "assign_for_bookings"
}
export declare class DriverListOnDispatcherForAssignDto {
    booking_id: string;
    pagination: number;
    limit: number;
    search?: string;
}
export declare class DispatcherGetBookingsDto {
    status: string;
    pagination: number;
    limit: number;
}
export declare class DriverIdDto {
    status: Status;
    id: string;
    search: string;
    pagination: number;
    limit: number;
}
export declare class CalculatePricingOnAdminDto {
    vehicle_id: string;
    service_area_id?: string;
    distance_in_km: number;
    duration: number;
    surcharge_multiplier: number;
    return_distance?: number;
    return_eta?: number;
    apply_surcharge: boolean;
    night_stay: boolean;
    return_trip: boolean;
    is_airport_pickup: boolean;
    is_airport_drop: boolean;
    request_type: string;
    need_load_unload: boolean;
    number_of_seats?: number;
    toll_charges?: number;
    waiting_time_in_mins?: number;
    waiting_charge?: number;
}
export {};
