import { View } from '../core/view';
import { Color } from '../../color';
import { CoreTypes } from '../../core-types';
export interface Keyframes {
    name: string;
    keyframes: Array<UnparsedKeyframe>;
    tag?: string | number;
    scopedTag?: string;
    mediaQueryString?: string;
}
export declare class UnparsedKeyframe {
    values: Array<any>;
    declarations: Array<KeyframeDeclaration>;
}
export declare class KeyframeDeclaration {
    property: string;
    value: any;
}
export declare class KeyframeInfo {
    duration: number;
    declarations: Array<KeyframeDeclaration>;
    curve?: any;
}
export declare class KeyframeAnimationInfo {
    keyframes: Array<KeyframeInfo>;
    name?: string;
    duration?: number;
    delay?: number;
    iterations?: number;
    curve?: any;
    isForwards?: boolean;
    isReverse?: boolean;
}
interface Keyframe {
    backgroundColor?: Color;
    scale?: {
        x: number;
        y: number;
    };
    translate?: {
        x: number;
        y: number;
    };
    rotate?: {
        x: number;
        y: number;
        z: number;
    };
    opacity?: number;
    width?: CoreTypes.PercentLengthType;
    height?: CoreTypes.PercentLengthType;
    valueSource?: 'keyframe' | 'animation';
    duration?: number;
    curve?: any;
    forceLayer?: boolean;
}
export declare class KeyframeAnimation {
    animations: Array<Keyframe>;
    delay: number;
    iterations: number;
    private _resolve;
    private _isPlaying;
    private _isForwards;
    private _nativeAnimations;
    private _target;
    static keyframeAnimationFromInfo(info: KeyframeAnimationInfo): KeyframeAnimation;
    private static parseKeyframe;
    get isPlaying(): boolean;
    cancel(): void;
    play(view: View): Promise<void>;
    private animate;
    _resolveAnimationFinishedPromise(): void;
    _resetAnimations(): void;
    private _resetAnimationValues;
}
export {};
