import { PageMode, ScaleMode, ViewMode } from '../Enums';
import { PrintMode } from '../Enums/PrintMode';
import { EmailInfo, PageActionEventArgs, PageInfo, PageTargetElement, SearchInfo, SearchResult, ParameterInfo } from '../Models';
import { TooltipEventArgs } from '../Models/TooltipEventArgs';
import { ReportControllerOptions, ReportSourceOptions } from '../ReportController';
import { ParameterValuesType } from '../Types/ParameterValuesType';
import { IBaseComponent } from './IBaseComponent';
export interface IReportController extends IBaseComponent {
    readonly autoRunEnabled: boolean;
    destroy: () => void;
    setOptions: (options: ReportControllerOptions) => void;
    getReportSource: () => ReportSourceOptions | null;
    setReportSource: (rs: ReportSourceOptions) => void;
    init: () => void;
    setAuthenticationToken: (token: string) => void;
    refreshReport: (ignoreCache: boolean, reportDocumentId: string, alwaysRespectAutoRun: boolean) => void;
    refreshReportCore: (ignoreCache: boolean, baseDocumentId: string) => void;
    getReportDocumentId: () => string;
    setReportDocumentId: (documentId: string) => void;
    navigateToPage: (page: number, targetElement: PageTargetElement | undefined) => void;
    getReportPage: (page: number) => void;
    getPageData: (page: number) => Promise<PageInfo>;
    printReport: () => void;
    exportReport: (format: string) => void;
    sendReport: (mailArgs: EmailInfo) => void;
    setParameters: (values: ParameterValuesType) => void;
    setParameter: (id: string, value: any) => void;
    hasInvalidParameter: (parameters: ParameterInfo[]) => boolean;
    previewReport: () => void;
    getClientId: () => string;
    getViewMode: () => ViewMode;
    setViewMode: (viewMode: ViewMode) => void;
    getScale: () => number;
    setScale: (scale: number) => void;
    getScaleMode: () => ScaleMode;
    setScaleMode: (scaleMode: ScaleMode) => void;
    getPageMode: () => PageMode;
    setPageMode: (pageMode: PageMode) => void;
    getPrintMode: () => PrintMode;
    setPrintMode: (printMode: PrintMode) => void;
    getCurrentPageNumber: () => number;
    setCurrentPageNumber: (number: number) => void;
    getPageCount: () => number;
    scrollPageReady: () => void;
    executeReportAction: (interactiveActionArgs: PageActionEventArgs) => void;
    reportActionEnter: (interactiveActionArgs: PageActionEventArgs) => void;
    reportActionLeave: (interactiveActionArgs: PageActionEventArgs) => void;
    reportTooltipOpening: (tooltipEventArgs: TooltipEventArgs) => void;
    reportTooltipClosing: (tooltipEventArgs: TooltipEventArgs) => void;
    stopRendering: () => void;
    getSearchResults: (searchInfo: SearchInfo) => Promise<SearchResult[]>;
    setSearchInitiated: (searchInitiated: boolean) => void;
    getSearchInitiated: () => boolean;
    setContentTabIndex: (tabIndex: number) => void;
    getContentTabIndex: () => number;
}
