import { ExportApi } from '../ExportApi';
import { ExportState, Report, ReportFormatType, ReportNameType, ReportSchedule, SystemReportFormat, SystemReportName } from '../../AdaptableState/ExportState';
import { LayoutExtendedConfig } from '../../types';
import { ApiBase } from './ApiBase';
import { AdaptableForm } from '../../AdaptableState/Common/AdaptableForm';
import { CustomDestination, CustomExportParams, ExportConfig, ExportDestinationType, ExportFormContext, ExportResultData, SystemExportDestination } from '../../AdaptableOptions/ExportOptions';
import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
import { ExportInternalApi } from '../Internal/ExportInternalApi';
import { AdaptableColumn } from '../../types';
export declare class ExportApiImpl extends ApiBase implements ExportApi {
    internalApi: ExportInternalApi;
    constructor(_adaptable: IAdaptable);
    getExportState(): ExportState;
    getCurrentReportName(): ReportNameType;
    getCurrentReportFormat(): ReportFormatType | undefined;
    getCurrentReport(): Report;
    getReportByName(reportName: string): Report | undefined;
    getReportById(id: Report['Uuid']): Report;
    getDestinationByName(destinationName: ExportDestinationType): SystemExportDestination | CustomDestination | undefined;
    getAvailableSystemReports(): SystemReportName[];
    getAvailableSystemFormats(): SystemReportFormat[];
    getAvailableSystemDestinations(): SystemExportDestination[];
    getAvailableCustomDestinations(): CustomDestination[];
    isExportDestinationSystem(destinationName: string): boolean;
    getAllExportDestinations(): ExportDestinationType[];
    getAllFormats(): ReportFormatType[];
    getAllReports(): Report[];
    selectReport(reportName: ReportNameType | null): void;
    clearReport(): void;
    selectFormat(reportFormat: ReportFormatType | null): void;
    clearFormat(): void;
    getExportDestinationForm(destinationName: string): AdaptableForm<ExportFormContext> | undefined;
    canExportToExcel(): boolean;
    canExportToCsv(): boolean;
    openExportSettingsPanel(): void;
    updateReport(report: Report): Report;
    updateReports(reports: Report[]): Report[];
    getCustomReports(): Report[];
    ensureScheduledReportUuids(): void;
    getScheduledReports(_config?: LayoutExtendedConfig): ReportSchedule[];
    getActiveScheduledReports(_config?: LayoutExtendedConfig): ReportSchedule[];
    getScheduledReportById(reportScheduleId: ReportSchedule['Uuid'], config?: LayoutExtendedConfig): ReportSchedule | undefined;
    addScheduledReport(reportSchedule: ReportSchedule): ReportSchedule;
    editScheduledReport(reportSchedule: ReportSchedule): ReportSchedule;
    deleteScheduledReport(reportSchedule: ReportSchedule): void;
    suspendScheduledReport(reportSchedule: ReportSchedule): ReportSchedule;
    unSuspendScheduledReport(reportSchedule: ReportSchedule): ReportSchedule;
    applyScheduledReport(reportSchedule: ReportSchedule): void;
    isColumnExportable(adaptableColumn: AdaptableColumn): boolean;
    getSupportedExportDestinations(reportFormat: ReportFormatType): ExportDestinationType[];
    exportReport(reportName: ReportNameType, format: ReportFormatType, destination?: ExportDestinationType, exportConfig?: ExportConfig): Promise<void>;
    getReportData(reportName: ReportNameType, format: ReportFormatType, config?: {
        exportParams?: (defaultExportParams: CustomExportParams) => CustomExportParams;
        showProgressIndicator?: boolean;
    }): Promise<ExportResultData>;
    private processExport;
}
