import type { IGraphic } from '@visactor/vrender-core';
import type { IAnimationState } from './types';
import type { IAnimationConfig } from '../executor/executor';
import { AnimateExecutor } from '../executor/animate-executor';
export declare const AnimationStates: {
    APPEAR: string;
    DISAPPEAR: string;
    UPDATE: string;
    HIGHLIGHT: string;
    UNHIGHLIGHT: string;
    SELECT: string;
    UNSELECT: string;
    HOVER: string;
    UNHOVER: string;
    ACTIVE: string;
    INACTIVE: string;
};
export declare class AnimationStateStore {
    graphic: IGraphic;
    constructor(graphic: IGraphic);
    states?: Map<string, IAnimationState>;
    registerState(state: IAnimationState): void;
    clearStates(): void;
}
interface IStateInfo {
    state: string;
    animationConfig: IAnimationConfig | IAnimationConfig[];
    executor: AnimateExecutor;
}
export declare class AnimationStateManager {
    protected graphic: IGraphic;
    stateList: IStateInfo[] | null;
    constructor(graphic: IGraphic);
    applyState(nextState: string[], animationConfig: (IAnimationState | IAnimationState[])[], callback?: (empty?: boolean) => void): void;
    applyAppearState(animationConfig: IAnimationConfig, callback?: () => void): void;
    applyDisappearState(animationConfig: IAnimationConfig, callback?: () => void): void;
    applyUpdateState(animationConfig: IAnimationConfig, callback?: () => void): void;
    applyHighlightState(animationConfig: IAnimationConfig, callback?: () => void): void;
    applyUnhighlightState(animationConfig: IAnimationConfig, callback?: () => void): void;
    stopState(state: string, type?: 'start' | 'end' | Record<string, any>): void;
    clearState(): void;
    reApplyState(state: string): void;
}
export {};
