import { BaseComponent } from './BaseComponent';
import { IServiceClient, IReportController } from './Interfaces';
import { ParameterValuesType, LocalizationMessageType } from './Types';
import { PageInfo, ParameterInfo, PageActionEventArgs, PageTargetElement, EmailInfo, SearchInfo, SearchResult, RenderingExtension } from './Models';
import { PrintMode, ViewMode, ScaleMode, PageMode } from './Enums';
import { TooltipEventArgs } from './Models/EventArgs/TooltipEventArgs';
import { ConfigurationInfo } from './Types/ConfigurationInfoType';
import { AiInfo } from './Types/AiInfoType';
/** Represents the options for the viewer's report source. */
export declare class ReportSourceOptions {
    /** The identifier of the report to be displayed in the viewer. */
    report: string;
    /** The parameters to be passed to the report. An object of key-value pairs where the key is the parameter name and the value is the parameter value. */
    parameters: ParameterValuesType;
    constructor(report?: string, parameters?: ParameterValuesType);
}
export declare class ReportControllerOptions {
    keepClientAlive: boolean;
    authenticationToken: string;
    reportSource: ReportSourceOptions | null;
    printMode: PrintMode;
    pageMode: PageMode;
    viewMode: ViewMode;
    scaleMode: ScaleMode;
    scale: number;
    messages: LocalizationMessageType;
    enableAccessibility: boolean;
    searchMetadataOnDemand: boolean;
    constructor(keepClientAlive: boolean, authenticationToken: string, reportSource: ReportSourceOptions, printMode: PrintMode, pageMode: PageMode, viewMode: ViewMode, scaleMode: ScaleMode, scale: number, messages: LocalizationMessageType, enableAccessibility?: boolean, searchMetadataOnDemand?: boolean);
}
export declare class ReportController extends BaseComponent implements IReportController {
    private configurationInfo;
    private keepClientAliveSentinel;
    private serviceClient;
    private printManager;
    private registerClientPromise;
    private registerInstancePromise;
    private documentFormatsPromise;
    private clientId;
    private reportInstanceId;
    private documentId;
    private threadId;
    private parameterValues;
    private bookmarkNodes;
    private renderingExtensions;
    private pageCount;
    private currentPageNumber;
    private clientHasExpired;
    private cancelLoad;
    private searchInitiated;
    private aiPromptInitiated;
    private contentTabIndex;
    private respectAutoRun;
    private options;
    private processedParameterValues;
    constructor(serviceClient: IServiceClient, options: ReportControllerOptions);
    get autoRunEnabled(): boolean;
    destroy(): void;
    setOptions(options: ReportControllerOptions): void;
    setAuthenticationToken(token: string): void;
    init(): void;
    getServiceVersion(): Promise<string>;
    getServiceConfiguration(): Promise<ConfigurationInfo>;
    stopRendering(): void;
    refreshReport(ignoreCache: boolean, baseDocumentId: string, alwaysRespectAutoRun?: boolean, skipRefresh?: boolean): void;
    processParameters(parameters: ParameterInfo[]): boolean;
    allParametersAutoRefresh(parameters: ParameterInfo[]): boolean;
    allParametersValidForAutoRefresh(parameters: any[], recentParameterValues: any): boolean;
    hasInvalidParameter(parameters: ParameterInfo[]): boolean;
    refreshReportCore(ignoreCache: boolean, baseDocumentId?: string, actionId?: string): void;
    navigateToPage(page: number, targetElement: PageTargetElement | undefined): void;
    getReportDocumentId(): string;
    setReportDocumentId(documentId: string): void;
    getReportPage(page: number): void;
    getPageData(page: number): Promise<PageInfo>;
    setParameters(values: ParameterValuesType): void;
    setParameter(id: string, value: any): void;
    getReportSource(): ReportSourceOptions | null;
    setReportSource(rs: ReportSourceOptions): void;
    previewReport(): void;
    getClientId(): string;
    getScale(): number;
    setScale(scale: number, skipEventEmit?: boolean): void;
    getScaleMode(): ScaleMode;
    setScaleMode(scaleMode: ScaleMode): void;
    getViewMode(): ViewMode;
    setViewMode(viewMode: ViewMode): void;
    getPageMode(): PageMode;
    setPageMode(pageMode: PageMode): void;
    getPrintMode(): PrintMode;
    setPrintMode(printMode: PrintMode): void;
    getCurrentPageNumber(): number;
    setCurrentPageNumber(number: number): void;
    getPageCount(): number;
    applySearchColors(): void;
    executeReportAction(interactiveActionArgs: PageActionEventArgs): void;
    reportActionEnter(interactiveActionArgs: PageActionEventArgs): void;
    reportActionLeave(interactiveActionArgs: PageActionEventArgs): void;
    reportTooltipOpening(tooltipEventArgs: TooltipEventArgs): Promise<void>;
    reportTooltipClosing(tooltipEventArgs: TooltipEventArgs): void;
    printReport(): Promise<void>;
    exportReport(format: string): Promise<void>;
    sendReport(mailInfo: EmailInfo): Promise<void>;
    getSearchResults(searchInfo: SearchInfo): Promise<SearchResult[]>;
    createAIThread(): Promise<AiInfo>;
    getAIResponse(query: string): Promise<string>;
    private exportAsync;
    private sendDocumentAsync;
    loadParameters(parameters?: ParameterValuesType | undefined): Promise<any>;
    private loadReport;
    private initializeAndStartSentinel;
    private stopSentinel;
    private setClientId;
    private clearClientId;
    private setReportInstanceId;
    private clearReportInstanceId;
    private clearReportState;
    private resetPageNumbers;
    private handleSearchRequestError;
    private throwPromiseError;
    private handleRequestError;
    private formatRequestError;
    private raiseError;
    private showNotification;
    private onClientExpired;
    private initializeClient;
    private registerInstance;
    private registerDocumentAsync;
    private getFormat;
    private getCanUsePlugin;
    private createPreviewDeviceInfo;
    private createDeviceInfo;
    private getParameters;
    getReportParameters(): Record<any, {}>;
    setProcessedParameterValues(values: any): void;
    getProcessedParameterValues(): Object;
    private getDocumentInfo;
    private getPage;
    private getPageForBookmark;
    private fixDataContractJsonSerializer;
    private execServerAction;
    private onReportLoadComplete;
    private onPageReady;
    private getReport;
    getDocumentFormats(): Promise<RenderingExtension[] | void> | null;
    setUIState(operationName: string, inProgress: boolean): void;
    missingOrInvalidParameters(invalidParameters: ParameterInfo[]): void;
    handleParametersNotification(allParametersValid: boolean): void;
    setSearchInitiated(searchInitiated: boolean): void;
    getSearchInitiated(): boolean;
    setAiPromptInitiated(aiPromptInitiated: boolean): void;
    getAiPromptInitiated(): boolean;
    setContentTabIndex(tabIndex: number): void;
    getContentTabIndex(): number;
    disposeSentinel(): void;
    getConfigurationInfo(): ConfigurationInfo;
    setConfigurationInfo(configurationInfo: ConfigurationInfo): void;
    isAiInsightsEnabled(): any;
    shouldShowLicenseBanner(): boolean;
    shouldShowLicenseOverlay(): boolean;
    getBannerIconFromId(iconId: number | undefined): string;
    saveToSessionStorage(key: string, value: string): void;
    loadFromSessionStorage(key: string): string;
    removeFromSessionStorage(key: string): void;
    clearSessionStorage(): void;
}
