import { Repository } from 'typeorm';
import { ClsService } from 'nestjs-cls';
import { TenantAwareRepository } from '../../../common/repositories/tenant-aware.repository';
import { BookingEntity, BookingStatus } from '../../../entities/booking.entity';
import type { BookingPaymentGateInput } from '../services/booking-payment-gate';
export declare class BookingRepository extends TenantAwareRepository<BookingEntity> {
    readonly ormRepo: Repository<BookingEntity>;
    constructor(repo: Repository<BookingEntity>, cls: ClsService);
    findByIdWithRelations(id: string): Promise<BookingEntity | null>;
    getBookingPrefix(): Promise<string>;
    getNextBookingNumber(): Promise<string>;
    getBookingNumberForQuery(queryNumber: string): Promise<string>;
    listActiveTenantIdsForStatusSync(): Promise<string[]>;
    findEligibleForDateSync(tenantId: string): Promise<Array<{
        id: string;
        status: string;
        start_date: string;
        end_date: string;
    }>>;
    findPaymentGateInputs(bookingIds: string[]): Promise<Map<string, BookingPaymentGateInput>>;
    bulkUpdateStatus(tenantId: string, ids: string[], status: BookingStatus): Promise<void>;
}
