import { AnimationPlaybackControls, DOMKeyframesDefinition } from 'framer-motion';
import { Options } from './types';
declare const STATE_TYPES: readonly ["initial", "animate", "inView", "hover", "press", "exit"];
type StateType = typeof STATE_TYPES[number];
export declare const mountedStates: WeakMap<Element, {
    id: string;
    state: MotionState;
}>;
export declare const motionStatesIdElements: Map<string, {
    animations: AnimationPlaybackControls[];
    id: string;
    state: MotionState;
}>;
export declare function getStates(): {
    mountedStates: WeakMap<Element, {
        id: string;
        state: MotionState;
    }>;
    motionStatesIdElements: Map<string, {
        animations: AnimationPlaybackControls[];
        id: string;
        state: MotionState;
    }>;
};
export declare class MotionState {
    private id;
    private element;
    private context;
    private parent?;
    private options;
    private activeStates;
    private depth;
    private baseTarget;
    private target;
    private featureManager;
    constructor(options: Options, parent?: MotionState);
    reset(options: Options, parent?: MotionState): void;
    private initContext;
    private initTarget;
    get initial(): string | boolean | object | undefined;
    mount(element: Element): void;
    unmount(): void;
    update(options: Options, parent?: MotionState): void;
    setActive(name: StateType, isActive: boolean): void;
    animateUpdates(): Generator<void, void, unknown>;
    isMounted(): boolean;
    getDepth(): number;
    getOptions(): Options;
    getElement(): Element | null;
    getTarget(): DOMKeyframesDefinition;
    getAnimationControls(): AnimationPlaybackControls[] | undefined;
}
export {};
