/// <reference types="react" />
import AnimationProvider from './AnimationProvider';
import { RouterEventMap } from './common/types';
export default class AnimationLayerData {
    private _play;
    private _isPlaying;
    private _isStarted;
    private _currentScreen;
    private _nextScreen;
    private _onExit;
    private _progressUpdateID;
    private _pseudoElementInAnimation;
    private _pseudoElementOutAnimation;
    private _inAnimation;
    private _outAnimation;
    private _playbackRate;
    private _gestureNavigating;
    private _backNavigating;
    private _onEnd;
    private _onProgress;
    private _shouldAnimate;
    private _dispatchEvent;
    private _addEventListener;
    private updateProgress;
    reset(): void;
    finish(): void;
    cancel(): void;
    private cleanUpAnimation;
    animate(): Promise<void>;
    set onProgress(_onProgress: ((progress: number) => void) | null);
    set onEnd(_onEnd: Function | null);
    set shouldAnimate(_shouldAnimate: boolean);
    set playbackRate(_playbackRate: number);
    set gestureNavigating(_gestureNavigating: boolean);
    set backNavigating(_backNavigating: boolean);
    set play(_play: boolean);
    set progress(_progress: number);
    set currentScreen(_screen: AnimationProvider);
    set nextScreen(_screen: AnimationProvider);
    set onExit(_onExit: Function | undefined);
    set addEventListener(_addEventListener: (<K extends keyof RouterEventMap>(type: K, listener: (this: HTMLElement, ev: RouterEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined) => void) | null);
    set dispatchEvent(_dispatchEvent: ((event: Event) => Promise<boolean>) | null);
    get addEventListener(): (<K extends keyof RouterEventMap>(type: K, listener: (this: HTMLElement, ev: RouterEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined) => void) | null;
    get dispatchEvent(): ((event: Event) => Promise<boolean>) | null;
    get duration(): number;
    get progress(): number;
    get gestureNavigating(): boolean;
    get backNavigating(): boolean;
    get isPlaying(): boolean;
    get ready(): Promise<void>;
    get finished(): Promise<void>;
    get started(): Promise<void>;
}
export declare const AnimationLayerDataContext: import("react").Context<AnimationLayerData>;
