export type StateTransition = {
    readonly to: string;
    readonly label?: string;
    readonly priority?: number;
    readonly exitTime?: number;
    readonly condition: (parameters: Readonly<Record<string, number | boolean | string>>) => boolean;
};
export type AnimationState = {
    readonly name: string;
    readonly transitions?: readonly StateTransition[];
};
export type AnimationStateMachineGraphState = {
    readonly name: string;
    readonly current: boolean;
    readonly transitionCount: number;
};
export type AnimationStateMachineGraphTransition = {
    readonly from: string;
    readonly to: string;
    readonly index: number;
    readonly priority: number;
    readonly label: string;
    readonly exitTime?: number;
};
export type AnimationStateMachineGraphSnapshot = {
    readonly currentState: string;
    readonly stateTime: number;
    readonly parameters: Readonly<Record<string, number | boolean | string>>;
    readonly states: readonly AnimationStateMachineGraphState[];
    readonly transitions: readonly AnimationStateMachineGraphTransition[];
};
export declare class AnimationStateMachine {
    readonly states: Map<string, AnimationState>;
    readonly parameters: Record<string, number | boolean | string>;
    currentState: string;
    stateTime: number;
    constructor(states: readonly AnimationState[], initialState: string);
    setParameter(name: string, value: number | boolean | string): void;
    update(delta?: number): string;
    graphSnapshot(): AnimationStateMachineGraphSnapshot;
    debugGraph(): string;
}
//# sourceMappingURL=AnimationStateMachine.d.ts.map