import { OnlineAttendanceService } from 'src/online-attendance/online-attendance.service';
import { SessionCommunicationService } from 'src/session-communication/session-communication.service';
import { ZoomWebinarRepository } from '../repositories/zoom-webinar.repository';
import { ZoomRegistrationRepository } from '../repositories/zoom-registration.repository';
import { ZoomAnalyticsAttendeeSummaryRepository } from '../repositories/zoom-analytics-attendee-summary.repository';
import { ZoomProgramAnalyticsService } from './zoom-program-analytics.service';
import { ZoomAnalyticsProviderRegistry } from '../registries/zoom-analytics-provider.registry';
import { ZoomAttendanceMarkSource } from 'src/common/enum/zoom-attendance-mark-source.enum';
import { FeatureFlagService } from 'src/feature-flag/feature-flag.service';
import { ZoomSessionKpis, ZoomGeneralAttendeeKpis, ZoomLiveStatus, ZoomAttendeeQuery, PaginatedZoomAttendeeRows, ZoomSessionKpisV1, ZoomGeneralAttendeeKpisV1, ZoomLiveStatusV1, PaginatedZoomAttendeeRowsV1, PaginatedZoomGeneralAttendeeRowsV1, ZoomAttendeeQueryV1Input, AnalyticsGeneralAttendeeQueryV1Input, ZoomSessionDashboard, PaginatedZoomFollowUpRows, ZoomSeekerAnalytics, ZoomProgramOverallAnalytics } from '../interfaces/zoom-analytics.interface';
export declare class ZoomAnalyticsFacadeService {
    private readonly webinarRepository;
    private readonly attendeeSummaryRepository;
    private readonly registry;
    private readonly onlineAttendanceService;
    private readonly registrationRepository;
    private readonly programAnalytics;
    private readonly sessionCommunicationService;
    private readonly featureFlagService;
    constructor(webinarRepository: ZoomWebinarRepository, attendeeSummaryRepository: ZoomAnalyticsAttendeeSummaryRepository, registry: ZoomAnalyticsProviderRegistry, onlineAttendanceService: OnlineAttendanceService, registrationRepository: ZoomRegistrationRepository, programAnalytics: ZoomProgramAnalyticsService, sessionCommunicationService: SessionCommunicationService, featureFlagService: FeatureFlagService);
    private annotateReportOptions;
    getKpis(sessionId: number, actorRoles?: string[], actorUserId?: number | null): Promise<ZoomSessionKpis>;
    getGeneralKpis(sessionId: number): Promise<ZoomGeneralAttendeeKpis>;
    getLiveStatus(sessionId: number): Promise<ZoomLiveStatus>;
    getAttendeeTable(sessionId: number, query: ZoomAttendeeQuery, actorRoles?: string[], actorUserId?: number | null): Promise<PaginatedZoomAttendeeRows>;
    getKpisV1(sessionId: number, actorRoles?: string[], actorUserId?: number | null): Promise<ZoomSessionKpisV1>;
    getLiveStatusV1(sessionId: number, query: ZoomAttendeeQueryV1Input, actorRoles?: string[], actorUserId?: number | null): Promise<ZoomLiveStatusV1>;
    getGeneralKpisV1(sessionId: number): Promise<ZoomGeneralAttendeeKpisV1>;
    getAttendeeTableV1(sessionId: number, query: ZoomAttendeeQueryV1Input, actorRoles?: string[], actorUserId?: number | null): Promise<PaginatedZoomAttendeeRowsV1>;
    getGeneralAttendeesV1(sessionId: number, query: AnalyticsGeneralAttendeeQueryV1Input, actorRoles?: string[], actorUserId?: number | null): Promise<PaginatedZoomGeneralAttendeeRowsV1>;
    reconcile(sessionId: number): Promise<void>;
    getSeekerAnalytics(programId: number, registrationId: number): Promise<ZoomSeekerAnalytics>;
    getDashboard(sessionId: number): Promise<ZoomSessionDashboard>;
    getFollowUps(sessionId: number, query: ZoomAttendeeQuery): Promise<PaginatedZoomFollowUpRows>;
    getProgramOverallAnalytics(programId: number): Promise<ZoomProgramOverallAnalytics>;
    markAttendance(sessionId: number, attendeeId: number, source: ZoomAttendanceMarkSource, attended: boolean, markedBy: number | null, actorRoles: string[]): Promise<void>;
    private resolveRmContactId;
    private buildSideFilterSets;
    private static buildGeneralSideFilterSets;
    private resolveEffectiveRmContactId;
    private static readonly ATTENDEE_TABLE_HEADERS;
    private static readonly GENERAL_ATTENDEE_TABLE_HEADERS;
    private static tile;
    private static buildAttendanceTiles;
    private static buildGeneralAttendanceTiles;
    private resolveProvider;
    private requireSession;
}
