import { ZoomGeneratedRegistrantLink } from 'src/common/entities';
import { AppLoggerService } from 'src/common/services/logger.service';
import { UserRepository } from 'src/user/user.repository';
import { OnlineSessionService } from 'src/online-session/services/online-session.service';
import { ZoomGeneratedRegistrantLinkRepository, PaginatedGeneratedLinks } from '../repositories/zoom-generated-registrant-link.repository';
import { WebinarService } from '../sessions/webinar.service';
import { MeetingService } from '../sessions/meeting.service';
import { GenerateZoomGeneralLinksV1Dto } from '../dto/generate-zoom-general-links-v1.dto';
import { GenerateZoomGeneralLinksResultV1 } from '../dto/generated-zoom-link-v1.dto';
export declare class ZoomGeneratedLinkService {
    private readonly onlineSessionService;
    private readonly linkRepository;
    private readonly userRepository;
    private readonly webinar;
    private readonly meeting;
    private readonly logger;
    constructor(onlineSessionService: OnlineSessionService, linkRepository: ZoomGeneratedRegistrantLinkRepository, userRepository: UserRepository, webinar: WebinarService, meeting: MeetingService, logger: AppLoggerService);
    generate(dto: GenerateZoomGeneralLinksV1Dto, actorUserId?: number): Promise<GenerateZoomGeneralLinksResultV1>;
    list(scope: {
        programId?: number;
        sessionId?: number;
    }, page: number, limit: number): Promise<PaginatedGeneratedLinks>;
    listByUser(userId: number, programId?: number, sessionId?: number): Promise<ZoomGeneratedRegistrantLink[]>;
    private resolveTargetSessions;
    private resolvePendingRecipients;
    private excludeAlreadyRegistered;
    private groupBySharedResource;
    private registerGroup;
    private callZoom;
    private buildRow;
    private resolvePriorityRoleKey;
    private resolveUserDisplayName;
    private handlerFor;
    private toResponseRow;
    private delay;
}
