import { DataSource, Repository } from 'typeorm';
import { AppLoggerService } from 'src/common/services/logger.service';
import { ReportFieldDef, ProgramZoomLinkRow } from './types/report-field.types';
import { ProgramRegistrationOnlineSession } from 'src/common/entities/program-registration-online-session.entity';
export declare class ReportsRepository {
    private readonly dataSource;
    private readonly logger;
    private readonly onlineSessionRepository;
    constructor(dataSource: DataSource, logger: AppLoggerService, onlineSessionRepository: Repository<ProgramRegistrationOnlineSession>);
    getAllFieldDefinitions(): Promise<ReportFieldDef[]>;
    fetchReportRows(cols: string, filtersJson: string): Promise<Record<string, unknown>[]>;
    getAllSessionAttendanceFieldDefinitions(): Promise<ReportFieldDef[]>;
    fetchSessionAttendanceReportRows(cols: string, filtersJson: string): Promise<Record<string, unknown>[]>;
    fetchSessionDropoffReportRows(filtersJson: string): Promise<Record<string, unknown>[]>;
    fetchGeneralAttendeesReportRows(filtersJson: string): Promise<Record<string, unknown>[]>;
    fetchGeneralSessionDropoffReportRows(filtersJson: string): Promise<Record<string, unknown>[]>;
    fetchProgramZoomLinks(programId: number, sessionId?: number): Promise<ProgramZoomLinkRow[]>;
}
