import { Repository } from "typeorm";
import { UserLocation } from "src/common/userlocation/userlocation.entity";
import { CreateBookingRequestDto } from "./booking.dto";
import { Booking } from "src/common/booking/booking.entity";
import { BookingRequest } from "src/common/booking/bookingrequest.entity";
import { UserLocationService } from "../userlocation/userlocation.service";
import { UserService } from "../user/user.services";
import { AdminDriverService } from "src/adminapi/driver/admin.driver.service";
import { DriverReviewService } from "../driverreview/driver-review.service";
import { Driver } from "src/common/driver/driver.entity";
import { Shop } from "src/common/shop/shop.entity";
export declare class BookingService {
    private readonly userLocationRepository;
    private readonly bookingRepository;
    private readonly bookingRequestRepository;
    private readonly userLocationService;
    private readonly userService;
    private readonly adminDriverService;
    private readonly driverRepository;
    private readonly shopRepository;
    private readonly driverReviewService;
    constructor(userLocationRepository: Repository<UserLocation>, bookingRepository: Repository<Booking>, bookingRequestRepository: Repository<BookingRequest>, userLocationService: UserLocationService, userService: UserService, adminDriverService: AdminDriverService, driverRepository: Repository<Driver>, shopRepository: Repository<Shop>, driverReviewService: DriverReviewService);
    bookingRequest(createBookingRequestDto: CreateBookingRequestDto): Promise<any>;
    confirmBooking(driverId: number, requestId: number): Promise<any>;
    updateBookingStatus(bookingId: number, status: number): Promise<Booking>;
    getNearbyDrivers(latitude: number, longitude: number, radius: number): Promise<UserLocation[]>;
    getBookingRequests(driverId: number, status: string, scheduleType?: 'now' | 'schedule'): Promise<any>;
    getOnGoingBookingRequests(driverId: number, scheduleType?: 'now' | 'schedule'): Promise<any>;
    getBookingDetail(userId: number): Promise<{
        bookingId: number;
        status: number;
        statusText: string;
        pickupPlace: string;
        dropPlace: string;
        createdAt: Date;
        scheduleType: "schedule" | "now";
        scheduleDate: string;
        scheduleTime: string;
        booking: Booking;
        user: import("../user/user.entity").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;
    }>;
    private mapStatus;
}
