import 'whatwg-fetch';
import { GcPaneBase } from './GcPaneBase';
import { ImageFormatCode } from '../Models/Types';
import { GcImageViewerRunEventsSink } from "../Models/Types";
import { ImagePaneView } from '../ImageDocumentViewer/ImagePaneView';
import { GifFrame } from './Gif/GifParser';
import { GifOptions } from './Gif/types';
/// <reference path="../../vendor/react/react.d.ts" />
//@ts-ignore
import { PointerEvent } from 'react';
export declare class GcGifPane extends GcPaneBase {
    parentContainer: HTMLElement;
    private imagePaneView;
    _worker: GcGifWorker;
    constructor(parentContainer: HTMLElement, imagePaneView: ImagePaneView);
    open(sink: GcImageViewerRunEventsSink, uri: string, _imageDPI?: number, imageFormat?: ImageFormatCode, frameIndex?: number): void;
    show(): void;
    hide(): any;
    dispose(): void;
    setImageDataUrl(dataUrl: any): Promise<void>;
    get framesCount(): number;
    get frameIndex(): number;
    set frameIndex(ind: number);
    get imageFormat(): ImageFormatCode;
    get actualSize(): {
        width: number;
        height: number;
    };
    set actualSize(size: {
        width: number;
        height: number;
    });
    get worker(): GcGifWorker;
    playAnimation(): void;
    stopAnimation(): void;
    toggleAnimation(): void;
    get isAnimationStarted(): boolean;
}
export declare class GcGifWorker {
    private parentContainer;
    private imagePaneView;
    private _isReady;
    get isReady(): boolean;
    set isReady(val: boolean);
    _framesCount: number;
    _frameIndex: number;
    _startFrameIndex: number;
    private _imageElements;
    private _imageFrames;
    xhr: XMLHttpRequest;
    currentFrameImage: HTMLImageElement;
    animationSpeed: number;
    options: GifOptions;
    private _animationStarted;
    private _stopAnimationTimout?;
    _onLayerPointerOverHandler: any;
    _onLayerPointerUpHandler: any;
    _onLayerPointerMoveHandler: any;
    _onLayerPointerOutHandler: any;
    _playControlsContainer?: HTMLDivElement;
    constructor(parentContainer: HTMLElement, imagePaneView: ImagePaneView);
    get isAnimationStarted(): boolean;
    toggleAnimation(): void;
    startAnimation: (isCalledByAutoPlay?: boolean) => void;
    stopAnimation: () => void;
    _doAnimationStep(): void;
    get currentFrame(): GifFrame;
    get framesCount(): number;
    get frameIndex(): number;
    set frameIndex(ind: number);
    get actualSize(): {
        width: number;
        height: number;
    };
    set actualSize(size: {
        width: number;
        height: number;
    });
    _customCursor?: HTMLDivElement;
    private _ensueCustomCursor;
    _onLayerPointerOver(event: PointerEvent): void;
    _onLayerPointerMove(event: PointerEvent): void;
    _updatePlayControls(): void;
    _onLayerPointerUp(event: PointerEvent): void;
    _onLayerPointerOut(event: PointerEvent): void;
    _removeCustomCursor(): void;
    dispose(): void;
    setImageDataUrl(dataUrl: any): Promise<void>;
    _onCurrentPageChanged(frameIndex: number): void;
    open(sink: GcImageViewerRunEventsSink, filename: string, frameIndex?: number): void;
    showError(text?: string): void;
}
