import * as mongoose from 'mongoose';
export declare class DriverAggregation {
    match(id: string): Promise<{
        $match: {
            _id: mongoose.Types.ObjectId;
        };
    }>;
    DriverVehicleDetailLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                driver_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    vehicle_id: number;
                    name: number;
                    model: number;
                    status: number;
                    number: number;
                    color: number;
                    insurance_expiry_date: number;
                    registration_expiry_date: number;
                    child_seat_availabilty: number;
                    wheel_chair_availabilty: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    DriverBankLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                driver_id: string;
            };
            pipeline: {
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
            }[];
            as: string;
        };
    }>;
    DriverDocumentDetailLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                driver_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    licence_front_image: number;
                    licence_back_image: number;
                    licence_expiry_date: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    unwind_vehicle_detail(): Promise<{
        $unwind: string;
    }>;
    unwind_document_detail(): Promise<{
        $unwind: string;
    }>;
    _drivermatch(match?: any): Promise<{
        $match: any;
    }>;
    InActiveDriverMatch(match?: any): Promise<{
        $match: any;
    }>;
    Blockdrivermatch(match?: any): Promise<{
        $match: any;
    }>;
    Deleteddrivermatch(match?: any): Promise<{
        $match: any;
    }>;
    booking_count_lookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                driverId: string;
            };
            pipeline: {
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
            }[];
            as: string;
        };
    }>;
    vehicle_details_lookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                driverId: string;
            };
            pipeline: {
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
            }[];
            as: string;
        };
    }>;
    AddField(): Promise<{
        $addFields: {
            bookingCount: {
                $size: string;
            };
        };
    }>;
    fillter_data(search: any): Promise<{
        $redact: {
            $cond: {
                if: {
                    $and: {
                        $or: ({
                            $eq: any[];
                            $regexMatch?: undefined;
                        } | {
                            $regexMatch: {
                                input: string;
                                regex: any;
                                options: string;
                            };
                            $eq?: undefined;
                        })[];
                    }[];
                };
                then: string;
                else: string;
            };
        };
    }>;
    face_set(option: any): Promise<{
        $facet: {
            count: {
                $count: string;
            }[];
            data: ({
                $sort: {
                    _id: number;
                };
                $skip?: undefined;
                $limit?: undefined;
            } | {
                $skip: any;
                $sort?: undefined;
                $limit?: undefined;
            } | {
                $limit: any;
                $sort?: undefined;
                $skip?: undefined;
            })[];
        };
    }>;
    face_set_for_update(option: any): Promise<{
        $facet: {
            count: {
                $count: string;
            }[];
            data: ({
                $sort: {
                    updated_at: number;
                };
                $skip?: undefined;
                $limit?: undefined;
            } | {
                $skip: any;
                $sort?: undefined;
                $limit?: undefined;
            } | {
                $limit: any;
                $sort?: undefined;
                $skip?: undefined;
            })[];
        };
    }>;
    projectFields(): Promise<{
        $project: {
            _id: number;
            name: number;
            email: number;
            image: number;
            country_code: number;
            phone: number;
            is_active: number;
            is_block: number;
            is_deleted: number;
            is_approved: number;
            bookingCount: number;
            created_at: number;
            license_number: number;
            vehicleDetails: number;
        };
    }>;
    driverRequestprojectFields(): Promise<{
        $project: {
            _id: number;
            name: number;
            email: number;
            image: number;
            country_code: number;
            phone: number;
            created_at: number;
            documents: number;
        };
    }>;
    UpdateDocsRequestprojectFields(): Promise<{
        $project: {
            _id: number;
            name: number;
            email: number;
            image: number;
            country_code: number;
            phone: number;
            updated_at: number;
            created_at: number;
        };
    }>;
    driverprojectFields(): Promise<({
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
        $lookup?: undefined;
        $addFields?: undefined;
        $group?: undefined;
    } | {
        $lookup: {
            from: string;
            localField: string;
            foreignField: string;
            as: string;
        };
        $unwind?: undefined;
        $addFields?: undefined;
        $group?: undefined;
    } | {
        $addFields: {
            "documents.name": {
                $arrayElemAt: (string | number)[];
            };
        };
        $unwind?: undefined;
        $lookup?: undefined;
        $group?: undefined;
    } | {
        $group: {
            _id: string;
            name: {
                $first: string;
            };
            email: {
                $first: string;
            };
            image: {
                $first: string;
            };
            phone: {
                $first: string;
            };
            country_code: {
                $first: string;
            };
            is_active: {
                $first: string;
            };
            is_block: {
                $first: string;
            };
            is_deleted: {
                $first: string;
            };
            is_approved: {
                $first: string;
            };
            approved_on: {
                $first: string;
            };
            created_at: {
                $first: string;
            };
            licence_front_image: {
                $first: string;
            };
            licence_back_image: {
                $first: string;
            };
            licence_expiry_date: {
                $first: string;
            };
            total_payout: {
                $first: string;
            };
            upcoming_payout: {
                $first: string;
            };
            bookingCount: {
                $first: string;
            };
            walletbalance: {
                $first: string;
            };
            vehicleDetails: {
                $first: string;
            };
            bankAccount: {
                $first: string;
            };
            block_reason: {
                $first: string;
            };
            reject_reason: {
                $first: string;
            };
            license_number: {
                $first: string;
            };
            driver_service_type: {
                $first: string;
            };
            fleet: {
                $first: string;
            };
            documents: {
                $push: {
                    $cond: (string | {
                        $ifNull: (string | boolean)[];
                        type_id?: undefined;
                        front_image_id?: undefined;
                        back_image_id?: undefined;
                        expire_date?: undefined;
                        is_expired?: undefined;
                        name?: undefined;
                        expiry_required?: undefined;
                        _id?: undefined;
                    } | {
                        type_id: string;
                        front_image_id: string;
                        back_image_id: string;
                        expire_date: string;
                        is_expired: string;
                        name: string;
                        expiry_required: string;
                        _id: string;
                        $ifNull?: undefined;
                    })[];
                };
            };
            gender: {
                $first: string;
            };
            service_prefrence: {
                $first: string;
            };
        };
        $unwind?: undefined;
        $lookup?: undefined;
        $addFields?: undefined;
    })[]>;
    total_payout_lookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                driverId: string;
            };
            pipeline: {
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
            }[];
            as: string;
        };
    }>;
    total_payout_AddField(): Promise<{
        $addFields: {
            total_payout: {
                $sum: string;
            };
        };
    }>;
    upcoming_payout_lookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                driverId: string;
            };
            pipeline: {
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
            }[];
            as: string;
        };
    }>;
    upcoming_payout_AddField(): Promise<{
        $addFields: {
            upcoming_payout: {
                $sum: string;
            };
        };
    }>;
    driver_vehicle_detail_match(id: any): Promise<{
        $match: {
            _id: mongoose.Types.ObjectId;
        };
    }>;
    vehicle_document_lookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                vehicle_detail_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    vehicle_insurance_image: number;
                    vehicle_registration_image: number;
                    insurance_expiry_date: number;
                    registration_expiry_date: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    getDriverVehicleDetailAggregation(id: any): Promise<({
        $match: {
            _id: mongoose.Types.ObjectId;
        };
        $lookup?: undefined;
    } | {
        $lookup: {
            from: string;
            localField: string;
            foreignField: string;
            as: string;
        };
        $match?: undefined;
    })[]>;
    _driverRequestmatch(): Promise<{
        $match: {
            is_approved: any;
            approved_on: any;
            is_phone_verify: boolean;
            is_doc_update: boolean;
            is_deleted: boolean;
            reject_reason: any;
        };
    }>;
    _driverRequestRejectmatch(): Promise<{
        $match: {
            is_deleted: boolean;
            is_approved: boolean;
        };
    }>;
    _UpdatedDocsRequestmatch(): Promise<{
        $match: {
            is_approved: any;
            is_doc_update: boolean;
        };
    }>;
}
