import { OnModuleInit } from '@nestjs/common';
import { OnlineTypeEnum } from 'src/common/enum/online-type.enum';
import { ZoomAnalyticsResourceType } from 'src/common/enum/zoom-analytics-resource-type.enum';
import { AppLoggerService } from 'src/common/services/logger.service';
import { ZoomWebinarRepository } from '../repositories/zoom-webinar.repository';
import { ZoomRegistrationRepository } from '../repositories/zoom-registration.repository';
import { ZoomReportApiClient, ZoomAnalyticsSessionReport } from './zoom-report-api.client';
import { ZoomAnalyticsProviderRegistry } from '../registries/zoom-analytics-provider.registry';
import { ZoomAnalyticsRosterRepository, ZoomAnalyticsRosterEntry } from '../repositories/zoom-analytics-roster.repository';
import { ZoomAnalyticsSessionSummaryRepository } from '../repositories/zoom-analytics-session-summary.repository';
import { ZoomAnalyticsAttendeeSummaryRepository } from '../repositories/zoom-analytics-attendee-summary.repository';
import { ZoomAnalyticsLiveEventRepository } from '../repositories/zoom-analytics-live-event.repository';
import { ZoomAnalyticsConfigService } from './zoom-analytics-config.service';
import { OnlineAttendanceService } from 'src/online-attendance/online-attendance.service';
import { ZoomGeneratedRegistrantLinkRepository } from '../repositories/zoom-generated-registrant-link.repository';
import { ZoomLiveEventAnalyticsProviderBase } from './zoom-live-event-analytics-provider.base';
export declare class ZoomMeetingAnalyticsProvider extends ZoomLiveEventAnalyticsProviderBase implements OnModuleInit {
    private readonly registry;
    private readonly reportApiClient;
    readonly key = ZoomAnalyticsResourceType.MEETING;
    protected readonly expectedOnlineType = OnlineTypeEnum.MEETING;
    constructor(registry: ZoomAnalyticsProviderRegistry, webinarRepository: ZoomWebinarRepository, reportApiClient: ZoomReportApiClient, rosterRepository: ZoomAnalyticsRosterRepository, sessionSummaryRepository: ZoomAnalyticsSessionSummaryRepository, attendeeSummaryRepository: ZoomAnalyticsAttendeeSummaryRepository, liveEventRepository: ZoomAnalyticsLiveEventRepository, config: ZoomAnalyticsConfigService, logger: AppLoggerService, onlineAttendanceService: OnlineAttendanceService, registrationRepository: ZoomRegistrationRepository, generatedLinkRepository: ZoomGeneratedRegistrantLinkRepository);
    onModuleInit(): void;
    protected fetchRoster(onlineSessionId: number, rmContactId?: number): Promise<ZoomAnalyticsRosterEntry[]>;
    protected fetchReport(extId: string): Promise<ZoomAnalyticsSessionReport | null>;
}
