import { EventWithSenderArg } from "@aurigma/design-atoms-model/EventObject";
import { ScrollBarsStyle } from "./ScrollBarsStyle";
import { ViewportAlignment } from "./ViewportAlignment";
import { ZoomMode } from "./ZoomMode";
import { ZoomQuality } from "./ZoomQuality";
import { UpdateStatus } from "../UpdateStatus";
import { ViewerClientSideOptions } from "./ViewerClientSideOptions";
import { PointF, SizeF } from "@aurigma/design-atoms-model/Math";
import { Canvas } from "../Canvas";
import { IRangeParams, IRulersConfig } from "./Interfaces";
import { IPointerParams } from "../Input/InputManager/IInputManager";
import { BaseItem } from "@aurigma/design-atoms-model";
export declare class ZoomParams {
    skipZoomToCenter?: boolean;
    centerPageX?: number;
    centerPageY?: number;
    workspaceX?: number;
    workspaceY?: number;
    preventEvent?: boolean;
}
export declare class TouchFlags {
    startZoom?: number;
    multiTouch?: boolean;
    pinchStarted?: boolean;
    isScroll?: boolean;
    isScrollChecked?: boolean;
    gestureCenter?: any;
    lastPinchEvent?: any;
    initialCurrentLeft?: any;
    initialCurrentTop?: any;
    mouseDown?: any;
}
export declare class BaseViewer {
    protected _zone: any;
    protected _viewerElement: HTMLDivElement;
    private _backColor;
    private _maxZoom;
    private _minZoom;
    protected _screenXDpi: number;
    protected _screenYDpi: number;
    private _scrollBarsStyle;
    private _scrollBarWidth;
    private _actualScrollbarWidth;
    protected _baseRulersOffset: PointF;
    private _scrollingPosition;
    private _scrollInitialized;
    private _viewportAlignment;
    private _zoom;
    private _zoomMode;
    private _zoomQuality;
    private _bestFitWhiteSpacePc;
    private _stateFieldId;
    private _needUpdateViewport;
    private _msTouchActionInitialValue;
    private _toolTip;
    private _accessKey;
    private _tabIndex;
    private _callbackArgs;
    private _callbackContext;
    private _status;
    private _exceptionDescription;
    private _returnValue;
    private _clientSideOptions;
    private _delayedRefreshTimeout;
    protected _refreshTimer: any;
    protected _contentElements: any[];
    protected _needToRefresh: boolean;
    private _rulerEnabled;
    private _rulerWidth;
    protected _rulerBorderWidth: number;
    private _rulerScale;
    private _rulerDivision;
    private _rulerOffsetX;
    private _rulerOffsetY;
    private _rulersOnScrollDelegate;
    private _rulersOnZoomDelegate;
    private _activeAjax;
    private _pinchZoomEnabled;
    private _holderBounds;
    protected _contentCtx: any;
    private _contentCtxDimension;
    protected _holderElement: HTMLElement;
    protected _touchFlags: TouchFlags;
    private _rulers;
    private _bodyCursor;
    protected _ignoreDocumentClickOnce: boolean;
    private _documentClickEvent;
    private _clickEvent;
    private _mouseDownEvent;
    private _mouseMoveEvent;
    private _mouseUpEvent;
    protected _workspaceDoubleClickEvent: EventWithSenderArg<BaseViewer, Object>;
    private _workspaceClickEvent;
    private _workspaceChangedEvent;
    protected _workspaceMouseDownEvent: EventWithSenderArg<BaseViewer, Object>;
    protected _workspaceMouseUpEvent: EventWithSenderArg<BaseViewer, Object>;
    protected _workspaceMouseMoveEvent: EventWithSenderArg<BaseViewer, Object>;
    private _statusChangedEvent;
    private _pinchStartEvent;
    private _pinchStopEvent;
    private _scrolledEvent;
    private _onresizeEvent;
    private _zoomedEvent;
    private _invokingCallbackRequestEvent;
    protected _canvas: Canvas;
    protected _intervalCheckLoop: {
        start({ checkFunction, onChange, delayMs }: {
            checkFunction: () => boolean;
            onChange: Function;
            delayMs?: number;
        }): any;
        stop(checkId: any): void;
    };
    protected _contentAngle: number;
    constructor(_zone?: any);
    get element(): HTMLDivElement;
    get id(): string;
    get contentAngle(): number;
    set contentAngle(value: number);
    get holderBounds(): {
        width: any;
        height: any;
        offsetWidth: any;
        offsetHeight: any;
        offsetTop: any;
        offsetLeft: any;
    };
    get contentWidth(): any;
    get width(): any;
    get contentHeight(): any;
    get height(): any;
    private _notifySizeChanged;
    protected _renderContent(sb: string): string;
    private get hasContent();
    private _render;
    private _clearElement;
    private _rulersOnScroll;
    private _rulersOnZoom;
    protected _rulersOnHover: (e: IPointerParams) => void;
    private _initializeRulers;
    private _disposeRulers;
    private _updateRulersStyle;
    protected _setRulersConfig(config: IRulersConfig): void;
    private _drawRulers;
    private _generateCssWithPrefixes;
    private _getPageZoom;
    getActualScrollPosition(): PointF;
    getViewportLocation(): PointF;
    ignoreDocumentClickOnce(): void;
    protected _onDocumentClick(e: any): void;
    protected _makeInactive(domElement: any): void;
    protected _makeInactiveAll(): void;
    protected _resizeContentElements(): void;
    protected _getElementBounds(element: any): {
        width: any;
        height: any;
        offsetWidth: any;
        offsetHeight: any;
        offsetTop: any;
        offsetLeft: any;
    };
    protected _isManyTouches(event: any): boolean;
    protected _onTouch(e: any): void;
    protected _onPinch(e: any, skipScrollToGestureCenter: any): void;
    protected _onRelease(e: any): void;
    initialize(intervalCheckLoop?: any): void;
    private _startIntervalCheckLoop;
    setIntervalCheckLoop(intervalCheckLoop: any): void;
    protected get _pointerEvents(): {
        start: string;
        move: string;
        up: string;
        cancel: string;
    };
    protected _onScroll(e: any): void;
    protected _onResize(sender: any, updateButtonGroup: any): void;
    protected _updateViewport(ignoreZoomConfigRestrictions?: boolean): void;
    private _addSetCapture;
    private _zoomToPagePoint;
    private _zoomToWorkspacePoint;
    private _updateViewportAlignment;
    get scrollingSize(): PointF;
    get contentCtx(): any;
    get clientSideOptions(): ViewerClientSideOptions;
    get zoomConfig(): IRangeParams;
    setCursor(v: any, onBody?: boolean): void;
    protected _getElementForCursor(): any;
    get delayedRefreshTimeout(): number;
    set delayedRefreshTimeout(v: number);
    getMaxZoom(): number;
    setMaxZoom(value: any): void;
    get minZoom(): number;
    set minZoom(value: number);
    set screenXDpi(v: number);
    get screenXDpi(): number;
    set screenYDpi(v: number);
    get screenYDpi(): number;
    get scrollBarsStyle(): ScrollBarsStyle;
    set scrollBarsStyle(value: ScrollBarsStyle);
    get scrollBarWidth(): number;
    get scrollingPosition(): PointF;
    set scrollingPosition(value: PointF);
    get viewportAlignment(): ViewportAlignment;
    set viewportAlignment(v: ViewportAlignment);
    get zoom(): number;
    setZoom(zoom: any, params: ZoomParams, ignoreZoomConfigRestrictions?: boolean, withoutUpdate?: boolean): number;
    protected _setZoom(value: any, ignoreZoomConfigRestrictions?: boolean): void;
    get pinchZoomEnabled(): boolean;
    set pinchZoomEnabled(v: boolean);
    get rulerEnabled(): boolean;
    set rulerEnabled(v: boolean);
    get rulerScale(): number;
    set rulerScale(v: number);
    get rulerDivision(): number;
    set rulerDivision(v: number);
    get rulerOffsetX(): number;
    set rulerOffsetX(v: number);
    get rulerOffsetY(): number;
    set rulerOffsetY(v: number);
    get actualRulerWidth(): number;
    get rulerWidth(): number;
    set rulerWidth(v: number);
    get zoomMode(): ZoomMode;
    set zoomMode(v: ZoomMode);
    protected _setZoomMode(v: any): void;
    get bestFitWhiteSpacePc(): number;
    set bestFitWhiteSpacePc(v: number);
    get zoomQuality(): ZoomQuality;
    get status(): UpdateStatus;
    get exceptionDescription(): string;
    get returnValue(): string;
    get workspaceWidth(): number;
    get workspaceHeight(): number;
    get actualSizeHorizontalScale(): number;
    calculateZoomByZoomMode(zoomMode: ZoomMode, size?: SizeF, bestFitWhiteSpacePcArg?: number): number;
    zoomToSelection(): void;
    zoomToItems(items?: BaseItem[]): void;
    getScrollBars(): {
        vertical: number;
        horizontal: number;
    };
    clearRenderCtx(ctx: any): void;
    abort(): void;
    dispose(): void;
    delayedRefresh(): void;
    protected _refresh(): void;
    refresh(): void;
    _raiseInvokingCallbackRequest(): void;
    add_onResize(h: any): void;
    remove_onResize(h: any): void;
    add_invokingCallbackRequest(h: any): void;
    remove_invokingCallbackRequest(h: any): void;
    add_workspaceChanged(h: any): void;
    remove_workspaceChanged(h: any): void;
    add_scrolled(h: any): void;
    remove_scrolled(h: any): void;
    add_statusChanged(h: any): void;
    remove_statusChanged(h: any): void;
    add_zoomed(h: any): void;
    remove_zoomed(h: any): void;
}
