import { AnimationConfigSet, AnimationKeyframeEffectConfig, CustomElementType, EasingFunction } from './common/types';
import AnimationKeyframePresets from './Animations';
import NavigationBase from './NavigationBase';
import { Component, ElementType } from 'react';
interface AnimationProviderProps {
    onRef: (ref: HTMLElement | null) => void;
    onExit: Function;
    onExited: Function;
    onEnter: Function;
    onEntered: Function;
    in: boolean;
    out: boolean;
    name: string;
    resolvedPathname?: string;
    animation: AnimationConfigSet | (() => AnimationConfigSet);
    pseudoElement?: {
        selector: string;
        animation: AnimationConfigSet | (() => AnimationConfigSet);
    };
    backNavigating: boolean;
    keepAlive: boolean;
    children: React.ReactNode;
    navigation: NavigationBase;
    renderAs: ElementType | CustomElementType;
}
interface AnimationProviderState {
    mounted: boolean;
    zIndex: number;
}
export default class AnimationProvider extends Component<AnimationProviderProps, AnimationProviderState> {
    private _animationLayerData;
    private ref;
    private onAnimationEnd;
    private onNavigate;
    private setRef;
    state: AnimationProviderState;
    onRef(ref: HTMLElement | null): void;
    animationEnd(): void;
    navigate(): void;
    componentDidMount(): void;
    componentDidUpdate(prevProps: AnimationProviderProps): void;
    componentWillUnmount(): void;
    private getAnimationConfig;
    get pseudoElementInAnimation(): AnimationKeyframeEffectConfig | ["none" | "slide-right-in" | "slide-back-right-in" | "slide-right-out" | "slide-back-right-out" | "slide-left-in" | "slide-back-left-in" | "slide-left-out" | "slide-back-left-out" | "slide-up-in" | "slide-back-up-in" | "slide-up-out" | "slide-back-up-out" | "slide-down-in" | "slide-back-down-in" | "slide-down-out" | "slide-back-down-out" | "zoom-in-in" | "zoom-in-out" | "zoom-out-in" | "zoom-out-out" | "fade-in" | "fade-out", number, EasingFunction | undefined] | null;
    get pseudoElementOutAnimation(): AnimationKeyframeEffectConfig | ["none" | "slide-right-in" | "slide-back-right-in" | "slide-right-out" | "slide-back-right-out" | "slide-left-in" | "slide-back-left-in" | "slide-left-out" | "slide-back-left-out" | "slide-up-in" | "slide-back-up-in" | "slide-up-out" | "slide-back-up-out" | "slide-down-in" | "slide-back-down-in" | "slide-down-out" | "slide-back-down-out" | "zoom-in-in" | "zoom-in-out" | "zoom-out-in" | "zoom-out-out" | "fade-in" | "fade-out", number, EasingFunction | undefined] | null;
    get inAnimation(): AnimationKeyframeEffectConfig | ["none" | "slide-right-in" | "slide-back-right-in" | "slide-right-out" | "slide-back-right-out" | "slide-left-in" | "slide-back-left-in" | "slide-left-out" | "slide-back-left-out" | "slide-up-in" | "slide-back-up-in" | "slide-up-out" | "slide-back-up-out" | "slide-down-in" | "slide-back-down-in" | "slide-down-out" | "slide-back-down-out" | "zoom-in-in" | "zoom-in-out" | "zoom-out-in" | "zoom-out-out" | "fade-in" | "fade-out", number, EasingFunction | undefined];
    get outAnimation(): AnimationKeyframeEffectConfig | [keyof typeof AnimationKeyframePresets, number, EasingFunction | undefined];
    get pseudoElementDuration(): string | number | null | undefined;
    get duration(): string | number | undefined;
    get pseudoElementAnimation(): Animation | null;
    get animation(): Animation | null;
    set zIndex(_zIndex: number);
    mounted(_mounted: boolean, willAnimate?: boolean): Promise<void>;
    render(): JSX.Element;
}
export {};
