import { BookingService } from "./booking.service";
import { CreateBookingRequestDto, ConfirmBookingRequestDto, UpdateBookingStatusDto } from "./booking.dto";
import { BookingGateway } from "src/common/booking/booking.gateway";
import { FirebaseService } from "../fcm/firebase.service";
import { User } from "../user/user.entity";
import { UserService } from "../user/user.services";
export declare class BookingController {
    private readonly bookingService;
    private readonly bookingGateway;
    private readonly firebaseService;
    private readonly userService;
    constructor(bookingService: BookingService, bookingGateway: BookingGateway, firebaseService: FirebaseService, userService: UserService);
    requestBooking(createBookingRequestDto: CreateBookingRequestDto): Promise<{
        status: boolean;
        message: string;
    }>;
    getBookingRequests(driverId: number, status: string, scheduleType: string): Promise<{
        status: boolean;
        bookingRequests: any;
        message: string;
    }>;
    getOngoingBookings(driverId: number, scheduleType: string): Promise<{
        status: boolean;
        bookingRequests: any;
        message: string;
    }>;
    confirmBooking(confirmBookingRequestDto: ConfirmBookingRequestDto): Promise<{
        status: boolean;
        booking: any;
        message: string;
    }>;
    updateBookingStatus(updateBookingStatusDto: UpdateBookingStatusDto): Promise<{
        bookingDetail: import("../../common/booking/booking.entity").Booking;
        status: boolean;
        message: string;
    }>;
    getBookingDetail(userId: number): Promise<{
        status: boolean;
        bookingDetail: {
            bookingId: number;
            status: number;
            statusText: string;
            pickupPlace: string;
            dropPlace: string;
            createdAt: Date;
            scheduleType: "schedule" | "now";
            scheduleDate: string;
            scheduleTime: string;
            booking: import("../../common/booking/booking.entity").Booking;
            user: User;
            driver: {
                averageRating: {
                    avgRating: number;
                    totalReviews: number;
                };
                id: number;
                vendorId: number;
                shopId: number;
                driverId: string;
                vehicle_photo: string;
                dl_number: string;
                dl_expiry_date: string;
                experience: string;
                name_plate: string;
                vehicle_name?: string;
                vehicle_color?: string;
                services: string[];
                documents: {
                    name: string;
                    image: string;
                }[];
                online: number;
                user: import("../../common/vendor/user.entity").User;
            };
            shop: any;
        };
        message: string;
    }>;
    notify(): Promise<{
        status: boolean;
        message: string;
    }>;
    sendMessage(body: {
        user: string;
        text: string;
    }): {
        status: boolean;
        message: string;
        data: {
            user: string;
            text: string;
        };
    };
}
