import { Repository, EntityManager } from 'typeorm';
import { ProgramSession } from 'src/common/entities';
import { AppLoggerService } from 'src/common/services/logger.service';
import { ZoomWebinarStatus } from 'src/common/enum/zoom-webinar-status.enum';
export declare class ZoomWebinarRepository {
    private readonly sessionRepo;
    private readonly logger;
    constructor(sessionRepo: Repository<ProgramSession>, logger: AppLoggerService);
    private repo;
    save(session: ProgramSession, manager?: EntityManager): Promise<ProgramSession>;
    deleteOnlineSession(onlineSessionId: number, manager?: EntityManager): Promise<void>;
    softDeleteExtensionsByOnlineSessionId(onlineSessionId: number, manager?: EntityManager): Promise<void>;
    findById(id: number, manager?: EntityManager): Promise<ProgramSession | null>;
    findByProgramId(programId: number): Promise<ProgramSession[]>;
    findByWebinarExtId(webinarIdExt: string, manager?: EntityManager): Promise<ProgramSession | null>;
    findByExtId(extId: string, manager?: EntityManager): Promise<ProgramSession | null>;
    findByExtIdForOccurrence(extId: string, occurrenceId: string | null, occurredAt: Date, meetingStartTime?: Date | null, manager?: EntityManager): Promise<ProgramSession | null>;
    saveSessionsInTransaction(sessions: ProgramSession[]): Promise<ProgramSession[]>;
    findByIds(ids: number[], manager?: EntityManager): Promise<ProgramSession[]>;
    findSiblingSessionsByExtId(extId: string, manager?: EntityManager): Promise<ProgramSession[]>;
    findAllWebinars(limit: number, offset: number, status?: ZoomWebinarStatus): Promise<{
        data: ProgramSession[];
        total: number;
    }>;
}
