import type { IGraphic, IAnimate } from '@visactor/vrender-core';
import type { IAnimationConfig, IAnimationCustomConstructor } from './executor';
interface IAnimateExecutor {
    execute: (params: IAnimationConfig) => void;
    executeItem: (params: IAnimationConfig, graphic: IGraphic, index?: number) => IAnimate[];
    onStart: (cb?: () => void) => void;
    onEnd: (cb?: () => void) => void;
}
export declare class AnimateExecutor implements IAnimateExecutor {
    static builtInAnimateMap: Record<string, IAnimationCustomConstructor>;
    static registerBuiltInAnimate(name: string, animate: IAnimationCustomConstructor): void;
    _target: IGraphic;
    private _animates;
    private _startCallbacks;
    private _endCallbacks;
    private _started;
    private _activeCount;
    constructor(target: IGraphic);
    onStart(cb?: () => void): void;
    onEnd(cb?: () => void): void;
    private _trackAnimation;
    parseParams(params: IAnimationConfig, isTimeline: boolean, child?: IGraphic): IAnimationConfig;
    execute(params: IAnimationConfig | IAnimationConfig[]): void;
    _execute(params: IAnimationConfig): IAnimate;
    private executeTypeConfigItem;
    private _handleRunAnimate;
    private executeTimelineItem;
    private applyTimeSliceToAnimate;
    private createCustomInterpolatorAnimation;
    private createCustomAnimation;
    private createPropsFromChannel;
    private resolveValue;
    executeItem(params: IAnimationConfig | IAnimationConfig[], graphic: IGraphic, index?: number, count?: number): IAnimate[];
    _executeItem(params: IAnimationConfig, graphic: IGraphic, index?: number, count?: number): IAnimate | null;
    stop(type?: 'start' | 'end' | Record<string, any>): void;
}
export {};
