import { Repository } from 'typeorm';
import { ClsService } from 'nestjs-cls';
import { TenantAwareRepository } from '../../../common/repositories/tenant-aware.repository';
import { DriverEntity } from '../../../entities/driver.entity';
export declare class DriverRepository extends TenantAwareRepository<DriverEntity> {
    constructor(repo: Repository<DriverEntity>, cls: ClsService);
    findAllWithRelations(): Promise<DriverEntity[]>;
    findByIdWithRelations(id: string): Promise<DriverEntity | null>;
    findBySupplier(supplierId: string): Promise<DriverEntity[]>;
    findByLicenseNo(licenseNo: string): Promise<DriverEntity | null>;
    findByPhoneDigits(digits: string): Promise<DriverEntity | null>;
    findByNameIForSupplier(name: string, supplierId: string): Promise<DriverEntity | null>;
    resolveSupplierDestination(supplierId: string): Promise<string | null>;
    tenantSupplierExists(supplierId: string): Promise<boolean>;
    tenantDestinationExists(destinationId: string): Promise<boolean>;
    findDriversBusyOn(driverIds: string[], date: string): Promise<Set<string>>;
    withSupplierLock<R>(supplierId: string, fn: () => Promise<R>): Promise<R>;
}
