import { Base, Type } from "./type";
import { IExecutionContext } from "./IExecutionContext";
import { ITickProvider } from "./ITickProvider";
import { KeyFrameAnimationPlayState } from "./KeyFrameAnimationPlayState";
import { Task } from "./Task";
import { AnimationKeyFrameEffectTargetType } from "./AnimationKeyFrameEffectTargetType";
import { IDependentRenderer } from "./IDependentRenderer";
import { AnimationKeyFrame } from "./AnimationKeyFrame";
import { UIElementPropertyId } from "./UIElementPropertyId";
import { UIElementPropertyAccessor } from "./UIElementPropertyAccessor";
import { AnimationKeyFrameEffectTiming } from "./AnimationKeyFrameEffectTiming";
import { AnimationKeyFrameProperty } from "./AnimationKeyFrameProperty";
/**
 * @hidden
 */
export declare class KeyFrameAnimationTimeline extends Base {
    static $t: Type;
    private c;
    private a;
    private h;
    private g;
    private f;
    private e;
    private k;
    private d;
    private i;
    get b(): IExecutionContext;
    get j(): number;
    constructor(a: ITickProvider, b: IExecutionContext);
    m(a: IKeyFrameAnimation): void;
    o(a: IKeyFrameAnimation): void;
    private p;
    private l;
    private n;
    private q;
}
/**
 * @hidden
 */
export interface IKeyFrameAnimation {
    currentTime: number;
    effect: AnimationKeyFrameEffect;
    readonly finished: Task;
    readonly ready: Task;
    id: string;
    readonly playState: KeyFrameAnimationPlayState;
    playbackRate: number;
    startTime: number;
    commitStyles(): void;
    onFinished: () => void;
    onCanceled: () => void;
    cancel(): void;
    finish(): void;
    pause(): void;
    play(): void;
    reverse(): void;
    updatePlaybackRate(a: number): void;
}
/**
 * @hidden
 */
export declare let IKeyFrameAnimation_$type: Type;
/**
 * @hidden
 */
export declare class KeyFrameAnimationDirect extends Base implements IKeyFrameAnimation {
    static $t: Type;
    private a;
    get effect(): AnimationKeyFrameEffect;
    set effect(a: AnimationKeyFrameEffect);
    private m;
    private d;
    get l(): boolean;
    get currentTime(): number;
    set currentTime(a: number);
    private p;
    private i;
    private as;
    private x;
    private aa;
    private ad;
    private ah;
    private al;
    private an;
    private k;
    private ar;
    get finished(): Task;
    get ready(): Task;
    private u;
    get id(): string;
    set id(a: string);
    private get r();
    get playState(): KeyFrameAnimationPlayState;
    private n;
    private g;
    private o;
    get s(): number;
    get playbackRate(): number;
    set playbackRate(a: number);
    private q;
    private j;
    get startTime(): number;
    set startTime(a: number);
    private b;
    get c(): KeyFrameAnimationTimeline;
    onFinished: () => void;
    onCanceled: () => void;
    private static t;
    constructor(a: AnimationKeyFrameEffect, b: KeyFrameAnimationTimeline);
    cancel(): void;
    private ai;
    private aj;
    private ag;
    private ak;
    finish(): void;
    pause(): void;
    private ae;
    private y;
    private ao;
    play(): void;
    private h;
    private f;
    private e;
    private w;
    private v;
    private af;
    private am;
    private ab;
    private ac;
    private ap;
    reverse(): void;
    updatePlaybackRate(a: number): void;
    private z;
    commitStyles(): void;
    aq(): void;
}
/**
 * @hidden
 */
export declare class AnimationKeyFrameEffect extends Base {
    static $t: Type;
    r: KeyFrameAnimationDirect;
    private get an();
    get as(): number;
    private a8;
    private a0;
    constructor(a: number, b: any, c: AnimationKeyFrameEffectTargetType, d: IDependentRenderer, e: AnimationKeyFrameEffectTiming);
    constructor(a: number, b: any, c: AnimationKeyFrameEffectTargetType, d: IDependentRenderer, e: AnimationKeyFrameEffectTiming, f: AnimationKeyFrame[]);
    constructor(a: number, ..._rest: any[]);
    protected get k(): number[];
    private e;
    l(a: AnimationKeyFrame): AnimationKeyFrameEffect;
    m(...a: AnimationKeyFrameProperty[]): AnimationKeyFrameEffect;
    n(a: number, ...b: AnimationKeyFrameProperty[]): AnimationKeyFrameEffect;
    private get au();
    private get ac();
    private get ap();
    private get am();
    private get w();
    private get s();
    private get ao();
    private get y();
    private get ad();
    private get av();
    private get ae();
    private get aw();
    private get z();
    private get aq();
    private get aa();
    private get ar();
    private x;
    private get af();
    private get ay();
    private get at();
    private get ab();
    private ax;
    a7(): void;
    private a5;
    private a1;
    private a3;
    private a9;
    private a2;
    a4: any;
    o: AnimationKeyFrameEffectTargetType;
    q: IDependentRenderer;
    private ag;
    private c;
    private al;
    private ah;
    private az;
    private t;
    private ai;
    private aj;
    private v;
    private ak;
    private u;
    private d;
    private a;
    private b;
    get h(): AnimationKeyFrame[];
    get f(): UIElementPropertyId[];
    get g(): UIElementPropertyAccessor[];
    private j;
    private i;
    a6(): void;
    p: AnimationKeyFrameEffectTiming;
}
