import type { IAnimate, IGraphic } 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;
    private _activeConfigList;
    constructor(target: IGraphic);
    get started(): boolean;
    onStart(cb?: () => void): void;
    onEnd(cb?: () => void): void;
    getActiveAttrKeys(): string[];
    hasActiveAttrs(): boolean;
    preventAttrs(keys: string[]): boolean;
    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 shouldCommitAttrOutChannel;
    private commitAnimatedUpdateDiffAttrsOnEnd;
    private isUpdateDiffContext;
    private collectAnimatedUpdateDiffAttrKeys;
    private createCustomAnimation;
    private createPropsFromChannel;
    private resolveValue;
    private getAttrOutChannelExcludedKeys;
    private collectAnimatedDiffKeys;
    private collectAnimatedDiffKeysFromEffect;
    private collectExplicitAnimatedKeys;
    private collectChannelAnimatedKeys;
    private includesChannel;
    private syncFinalAttrsFromContext;
    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>, callEnd?: boolean): void;
}
export {};
