//@ts-ignore
import { PluginModel, DocumentMoniker, SearchFeature, EventFan, ZoomSettings } from '@grapecity/viewer-core';
//@ts-ignore
import { ContextMenuProvider } from "@grapecity/core-ui";
import { ParameterInfo } from './GcImageDocument';
import { ViewerOptions } from './ViewerOptions';
import { GcImageViewer } from './GcImageViewer';
import { ShortcutsConfig } from './Keyboard/ShortcutsConfig';
/// <reference path="../vendor/i18next.d.ts" />
//@ts-ignore
import { i18n } from 'i18next';
import { AfterOpenEventArgs, BeforeOpenEventArgs, ErrorEventArgs } from './Models/EventArgs';
import { GcImageViewerStateStorage } from './GcImageViewerStateStorage';
import { LogLevel, OpenParameters } from './Models/Types';
import { LeftSidebar } from './LeftSidebar';
import { FloatingBar } from './FloatingBar/FloatingBar';
import { ReportAction, ReportEvent } from './Models/PluginTypes';
import { GcSelectionPoint } from './Models/GcMeasurementTypes';
import { ImagePaneView } from './ImageDocumentViewer/ImagePaneView';
import { UndoStorage } from './Undo/UndoStorage';
import { GcRightSidebar } from './RightSidebar/GcRightSidebar';
import { GcRightSidebarState } from './RightSidebar/types';
import { IEventBus } from './Models/IImageViewer';
import { ConfirmationDialog } from './Dialogs/ConfirmationDialog';
export declare class ReportDocumentMoniker implements DocumentMoniker {
    readonly uri: string;
    readonly params: ParameterInfo[];
    readonly pluginKey = "image";
    constructor(uri: string, params: ParameterInfo[]);
}
export declare class ImageReportPlugin implements PluginModel.IPluginModule<ReportEvent, ReportAction> {
    readonly _viewer: GcImageViewer;
    readonly pluginKey = "image";
    in17n: i18n;
    private disableFeaturesHash;
    private _shortcutsConfig;
    private _document?;
    private _titleToolbarItem;
    private _titleToolbarItemRemoved;
    private readonly _errorEvent;
    _options: ViewerOptions;
    _documentTitle: string;
    _panelsUpdateKey: any;
    _pendingBinaryFiles: any;
    private _gcimagedocumentviewer;
    private imageUrl;
    _initialViewStateSetFlag: boolean;
    _stateStorage: GcImageViewerStateStorage;
    _loadDocViewerPromise: Promise<ImagePaneView>;
    _cancelledInternal: boolean;
    private _constructed;
    _documentListPanel: PluginModel.PanelHandle;
    private _availablePanelsHash;
    _licenseErrorShown: boolean;
    _pingSupportApiServerTimer: any;
    private _updatingPanelFlag;
    _sidebarOpened: boolean;
    private _lastErrorReport;
    private _lastErrorReportTime;
    private _documentAssemblyFlag;
    _allowPrintFlag: boolean;
    afterOpenPromiseCapability: {
        promise: Promise<any>;
        resolve: Function;
        reject: Function;
    };
    private _onWindowResizeTimeout;
    private _windowResize?;
    private _logLevel?;
    private _leftSidebar;
    docViewerId: string;
    private _disposed;
    private _dropFileAreaHelper;
    private _floatingBar;
    private _documentKeydownHandler?;
    private _documentKeyupHandler?;
    private _keyboardWorker?;
    private _shiftDown;
    private _titleToolbarItemTextChanged;
    private _openParameters;
    loadingThemeFlag: boolean;
    private _gcImageDocument;
    private _lastViewerState;
    private _undoStateStorage;
    private _loadingFlag;
    private _rightSidebar;
    confirmationDialog: ConfirmationDialog;
    constructor(_viewer: GcImageViewer, options: Partial<ViewerOptions>, i18n: i18n);
    onFileDrop(file: File, insertPoint: GcSelectionPoint): void;
    onImageUrlDrop(url: string, insertPoint: GcSelectionPoint, force?: boolean): void;
    get eventBus(): IEventBus;
    onZoomChange(zoom: ZoomSettings, prevZoom: ZoomSettings, caller?: "statechange" | "zoomcontrol"): void;
    onZoomChangeInternal(zoom: ZoomSettings, scaleToCursor?: boolean): void;
    onImageDrop(img: HTMLImageElement, insertPoint: GcSelectionPoint, force?: boolean): Promise<void>;
    applyOptions(): void;
    private _applyOptionsInternal;
    get options(): ViewerOptions;
    set options(options: ViewerOptions);
    get shortcutsConfig(): ShortcutsConfig;
    get docViewer(): ImagePaneView;
    get imagePaneView(): ImagePaneView;
    dispose(): void;
    onWindowResize(): void;
    onWindowResizeInternal(): void;
    addEvents(): void;
    removeEvents(): void;
    reportError(params: PluginModel.IErrorParams, allowJsxContent?: boolean): void;
    showNotificationDialog(params: PluginModel.IErrorParams): void;
    get hasDocument(): boolean;
    get hasImage(): boolean;
    get documentListPanelId(): string | null;
    _onError(event: any): void;
    raiseError(message: string): void;
    _onDocumentClosed(): void;
    onAfterDocumentOpen(): void;
    get activePanelId(): string | null;
    set activePanelId(id: string | null);
    pluginReady(): boolean;
    onPanelChange: (panelId: string | null) => void;
    prepareToolbarLayout(layout?: string[]): string[] | undefined;
    applyToolbarLayout(): void;
    toggleSidebar(panelId: string, pin?: boolean): void;
    private _ensureNarrowScreenDisabled;
    updateSecondToolbarPosition(): void;
    initialFrameIndex?: number;
    private _onStateChange;
    isPanelAvailable(panelId: string): boolean;
    addDocumentTitleTool(): void;
    get uniqueId(): string;
    logError(method: string, message: string): void;
    logDebug(method: string, message: string): void;
    get pageIndex(): number;
    get fileData(): Uint8Array | null;
    renderPage(page: PluginModel.IPageData): PluginModel.PageView;
    renderHighlightPage(page: PluginModel.IPageData, results: SearchFeature.SearchResult[]): PluginModel.PageView;
    onEscapePressed(): void;
    onOpenDocument(document: PluginModel.IDocument | null): void;
    onOpenDocumentView(view: PluginModel.IDocumentView): void;
    loadDocumentTitle(): Promise<void>;
    resolveAction(_: any, event: any): PluginModel.ViewerAction | ReportAction | null;
    processAction(context: PluginModel.ActionContext<ReportEvent>, action: ReportAction): boolean;
    get fileUrl(): string;
    get fileName(): string;
    get localFileName(): string;
    _formatLinkP(textToFormat: string, url: string): JSX.Element | null;
    private _formatLinkLi;
    _formatLink(textToFormat: string, url: string): JSX.Element | null;
    showAbout(): void;
    processEvent(context: PluginModel.ActionContext<ReportEvent>, event: ReportEvent, direction: PluginModel.TimeDirection): void;
    openLocalFile(): void;
    get scrollViewElement(): HTMLDivElement;
    get hostElement(): HTMLElement;
    cleanupDocument(): Promise<void>;
    get loadingFlag(): boolean;
    set loadingFlag(val: boolean);
    openDocument: (moniker: ReportDocumentMoniker) => Promise<PluginModel.IDocument>;
    endUpdate(): void;
    _ensureInitialViewState(): void;
    onBeforeOpenFile(file: any, openParameters?: OpenParameters): {
        file: string;
        promise: Promise<any>;
        openParameters?: OpenParameters;
    };
    open(file: any, openParameters?: OpenParameters): void;
    print(): void;
    close(): Promise<void>;
    language: string;
    currentPageNumber: number;
    updateVisiblePages(): void;
    raiseStateChanged(): void;
    get owner(): GcImageViewer;
    get rightSidebar(): GcRightSidebar;
    addLayersPanel(sidebarState?: GcRightSidebarState): void;
    removeLayersPanel(): void;
    get logLevel(): LogLevel;
    set logLevel(logLvel: LogLevel);
    get openParameters(): OpenParameters | undefined;
    get undoStorage(): UndoStorage;
    get hasUndo(): boolean;
    get hasRedo(): boolean;
    get undoIndex(): number;
    get undoCount(): number;
    set zoomValue(val: number);
    get zoomValue(): number;
    get version(): string;
    showSecondToolbar(toolbarKey: string): Promise<void>;
    get floatingBar(): Promise<FloatingBar>;
    _activatedEditorMode?: "SecondBar" | "FormEditor" | "AnnotationEdtor" | "Any" | "";
    get isAnyEditorMode(): boolean;
    get activatedEditorMode(): "SecondBar" | "FormEditor" | "AnnotationEdtor" | "Any" | "" | undefined;
    get onError(): EventFan<ErrorEventArgs>;
    get onBeforeOpen(): EventFan<BeforeOpenEventArgs>;
    get onAfterOpen(): EventFan<AfterOpenEventArgs>;
    get onThemeChanged(): EventFan<AfterOpenEventArgs>;
    setTheme(theme: string | undefined): Promise<boolean>;
    undo(): Promise<void>;
    redo(): Promise<void>;
    private _leftSidebarWidths;
    private _leftSideBarResizedHandler;
    private _setInitialLeftSidebarWidth;
    private _loadDocViewer;
    _convertMsgToContent(msg: string): JSX.Element[];
    get sidebarPinned(): boolean;
    get leftSidebar(): LeftSidebar;
    execSidebarPanel(methodName: 'pin' | 'open' | 'unpin' | 'close' | 'toggle' | 'collapse' | 'expand', panelId?: string): void;
    beginPanelUpdate(doNotLock?: boolean): boolean;
    endPanelUpdate(): void;
    get currentUserName(): string;
    set currentUserName(userName: string);
    private _updateDocumentTitle;
    private _ensureDocTitleClass;
    get canEditDocument(): boolean;
    get canPrintDocument(): boolean;
    _additionalLocalizationMessages(): void;
    showMessage(message: string, details?: string, severity?: "error" | "warn" | "info" | "debug", allowJsxContent?: boolean): void;
    private getLicenseKey;
    private checkLicense;
    private _showLicenseError;
    contextMenuProvider: ContextMenuProvider;
    renderDialogRoots(): void;
    disposeDialogRoots(): void;
}
export default ImageReportPlugin;
