import { AfterViewInit, SimpleChanges, OnChanges, EventEmitter, OnDestroy, ElementRef } from '@angular/core';
import { ReportViewer as ViewerNs, Core } from '@grapecity/activereports';
import { Export } from '../export-injectiontoken';
import * as i0 from "@angular/core";
export type IReport = Core.Rdl.Report | string;
export declare class ViewerComponent implements AfterViewInit, OnChanges, OnDestroy {
    private readonly supportedExports?;
    rootElement: ElementRef;
    private _viewer;
    private _initProps;
    private get supportedExportKeys();
    constructor(supportedExports?: Export[] | undefined);
    width: string;
    height: string;
    language?: string;
    /** UI theme */
    theme?: ViewerNs.UITheme;
    /** Initial UI themes settings */
    themeConfig?: ViewerNs.UIThemeConfig;
    /** Layout of panels bar. Cannot be changed on the fly. */
    panelsLayout?: ViewerNs.PanelsLocation;
    /** Parameters panel location. */
    parameterPanelLocation?: ViewerNs.ParameterPanelLocation;
    /** Parameters panel behaviour. */
    showParametersOnOpen?: ViewerNs.ShowParametersOnOpen;
    memoizeData?: boolean;
    toolbarLayout?: ViewerNs.ToolbarLayout;
    exportsSettings?: Record<string, ViewerNs.ExportSettings>;
    availableExports?: string[];
    mouseMode?: ViewerNs.ViewerMouseMode;
    renderMode?: ViewerNs.ViewerRenderMode;
    viewMode?: ViewerNs.ViewerViewMode | ViewerNs.ViewMode;
    zoom?: ViewerNs.ViewerZoomMode;
    fullscreen?: boolean;
    toolbarVisible?: boolean;
    sidebarVisible?: boolean;
    errorHandler?: () => void;
    init: EventEmitter<ViewerComponent>;
    reportLoaded: EventEmitter<ViewerNs.ReportLoadEventArgs>;
    documentLoaded: EventEmitter<ViewerNs.DocumentLoadEventArgs>;
    private _propSetters;
    private _disposables;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    get ref(): ViewerNs.Viewer;
    private initViewer;
    /**
     * Opens report from file or as definition (json string)).
     *
     * @param report  The report template. Can be report URI, or report definition, or instance of PageReport class.
     * @param settings  Additional settings for report (name, parameters).
     */
    open(report: IReport, settings?: Partial<ViewerNs.ReportSettings>): Promise<ViewerNs.LoadResult>;
    /**
     * Exports currently displayed report to specified output format. Returns object which contains
     * result data as blob object | string and download function. So you could either use this blob object or download file immediately.
     * Please note that you can specify settings in PDF export as plain list
     * (like **{title: 'Title', author: 'Author Name', ownerPassword: '1'}** etc...
     *
     * ```javascript
     * var options = {filename:"Invoice List"};
     * var cancelCallback = function(){
     *     return false; // continue export. Return true to cancel export process
     * }
     * viewer.export('pdf', options, {cancel: cancelCallback }).then(result => doSmthWithBlob(result.data));
     * //or you can download file
     * viewer.export('pdf', options, {cancel: cancelCallback }).then(result => result.download('Invoice List'));
     * ```
     *
     * @param format  Export format identifier. One of 'pdf', 'xlsx', 'html', 'tabular-data'.
     * @param settings  Format specific export settings.
     * @param params  Additional export customization.
     */
    export(format: string, settings: Record<string, string | boolean | number>, params?: {
        cancel?: () => boolean;
    }): Promise<ViewerNs.ExportResult>;
    /**
     * Resets current viewer document
     */
    resetDocument(): Promise<void>;
    /**
     * Prints currently displayed report.
     */
    print(): void;
    /** Gets current page number (1-based). Returns 0 if no document loaded. */
    get currentPage(): number;
    /** Gets the total number of pages available in report. */
    get pageCount(): number;
    /** Provides access to the "history" API. */
    get history(): ViewerNs.HistoryApi;
    /** Gets the toolbar API */
    get toolbar(): ViewerNs.Toolbar;
    /** Navigates to the first page. */
    goToFirstPage(): void;
    /** Navigates to the previous page. */
    goToPrevPage(): void;
    /** Navigates to the next page. */
    goToNextPage(): void;
    /** Navigates to the last page. */
    goToLastPage(): void;
    /** Navigates to the specified page (starting from 1). */
    goToPage(pageNumber: number): void;
    /** Performs backToParent action which will return user to parent report. */
    backToParent(): void;
    /** Performs refresh operation in report (re-render report). */
    refresh(): void;
    /** Gets **true** if backToParent command is applicable to current document. */
    get canBackToParent(): boolean;
    /**
     * Performs search operation in currently rendered report. Allows you to create your own custom search pane.
     */
    search(options: ViewerNs.SearchOptions, resultFn: (result: ViewerNs.SearchResult) => void, progressFn?: (progress: {
        pageIndex: number;
        pageCount: number | null;
    }) => void, cancel?: ViewerNs.CancellationToken): Promise<ViewerNs.SearchStatus>;
    /**
     * Highlights the search result returned by a search method.
     */
    highlight(result: ViewerNs.SearchResult | null): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ViewerComponent, [{ optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ViewerComponent, "gc-activereports-viewer", never, { "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "language": { "alias": "language"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "themeConfig": { "alias": "themeConfig"; "required": false; }; "panelsLayout": { "alias": "panelsLayout"; "required": false; }; "parameterPanelLocation": { "alias": "parameterPanelLocation"; "required": false; }; "showParametersOnOpen": { "alias": "showParametersOnOpen"; "required": false; }; "memoizeData": { "alias": "memoizeData"; "required": false; }; "toolbarLayout": { "alias": "toolbarLayout"; "required": false; }; "exportsSettings": { "alias": "exportsSettings"; "required": false; }; "availableExports": { "alias": "availableExports"; "required": false; }; "mouseMode": { "alias": "mouseMode"; "required": false; }; "renderMode": { "alias": "renderMode"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "zoom": { "alias": "zoom"; "required": false; }; "fullscreen": { "alias": "fullscreen"; "required": false; }; "toolbarVisible": { "alias": "toolbarVisible"; "required": false; }; "sidebarVisible": { "alias": "sidebarVisible"; "required": false; }; "errorHandler": { "alias": "errorHandler"; "required": false; }; }, { "init": "init"; "reportLoaded": "reportLoaded"; "documentLoaded": "documentLoaded"; }, never, never, false, never>;
}
