import { CreateReportDto, CreateReportScheduledJobDto, DownloadReportDto, ExportReportNowDto, Query, ReportApiLink, ReportDtoInterface, ReportExportProgressDto, ReportPagination, ReportQueryRowsCountDto, ReportScheduledJobDto, StartReportDownloadSuccessDto, StartReportExportSuccessDto, SystemReportDto, UpdateReportDto, UpdateReportScheduledJobDto } from '@bringg/types';
import Entity from '../../Core/Entity';
import Session from '../../Services/Identity/Session';
import { DeleteResponseData, IsWebhookUsedInReportScheduledJobsResponseDto, ReportResponse } from '../AnalyticsReports.types';
export default class AnalyticsReportsEntity extends Entity<AnalyticsReportsEntity> {
    constructor(session: Session);
    getReport(reportId: ReportDtoInterface['id']): Promise<ReportResponse<ReportDtoInterface>>;
    getUserReports(queryString: ReportPagination): Promise<ReportResponse<ReportDtoInterface[]>>;
    getSystemReports(queryString: ReportPagination): Promise<ReportResponse<SystemReportDto[]>>;
    createReportScheduledJob(queryParams: CreateReportScheduledJobDto): Promise<ReportResponse<ReportScheduledJobDto>>;
    updateReportScheduledJob(jobId: ReportScheduledJobDto['id'], queryParams: UpdateReportScheduledJobDto): Promise<ReportResponse<ReportScheduledJobDto>>;
    getReportScheduledJob(jobId: ReportScheduledJobDto['id']): Promise<ReportResponse<ReportScheduledJobDto>>;
    deleteReportScheduledJob(jobId: ReportScheduledJobDto['id']): Promise<ReportResponse<DeleteResponseData>>;
    isWebhookUsedInScheduledJobs(webhookUuid: string): Promise<ReportResponse<IsWebhookUsedInReportScheduledJobsResponseDto>>;
    getApiLink(): Promise<ReportResponse<ReportApiLink>>;
    getActiveReportExecutions(): Promise<ReportResponse<ReportExportProgressDto[]>>;
    subscribeReportExecutions(handler: (entity: ReportExportProgressDto) => void): void;
    unsubscribeReportExecutions(): void;
    removeReportExecutions(executionId: string): Promise<ReportResponse<ReportExportProgressDto[]>>;
    getReportRowsCount(queryJson: Query, timeZone?: string): Promise<ReportResponse<ReportQueryRowsCountDto>>;
    optOutReport(reportId: ReportDtoInterface['id']): Promise<unknown>;
    /**
     * @deprecated Use createUserReport() instead
     */
    createReport(report: CreateReportDto): Promise<ReportResponse<ReportDtoInterface>>;
    /**
     * @deprecated Use updateUserReport() instead
     */
    updateReport(reportId: ReportDtoInterface['id'], report: UpdateReportDto): Promise<ReportResponse<ReportDtoInterface>>;
    /**
     * @deprecated Use deleteUserReport() instead
     */
    deleteReport(reportId: ReportDtoInterface['id']): Promise<ReportResponse<DeleteResponseData>>;
    /**
     * @deprecated Use exportUserReport() or exportSystemReport() instead
     */
    exportReport(reportId: ReportDtoInterface['id'], queryParams: ExportReportNowDto): Promise<ReportResponse<StartReportExportSuccessDto>>;
    /**
     * @deprecated Use downloadUserReport() or downloadSystemReport() instead
     */
    downloadReport(reportId: ReportDtoInterface['id'], queryParams: DownloadReportDto): Promise<ReportResponse<StartReportDownloadSuccessDto>>;
    /**
     * @deprecated Use retryUserReportExecutions() or retrySystemReportExecutions() instead
     */
    retryReportExecutions(executionId: string): Promise<ReportResponse<ReportExportProgressDto[]>>;
}
