export interface TemporalState {
    id: string;
    command: string;
    element: HTMLElement;
    originalState: any;
    untilEvent: string;
    untilTarget?: HTMLElement | Document | Window | undefined;
    cleanup: () => void;
    timestamp: number;
}
export interface TemporalModifierOptions {
    command: string;
    element: HTMLElement;
    untilEvent: string;
    untilTarget?: HTMLElement | Document | Window | undefined;
    stateCapture: () => any;
    stateRestore: (state: any) => void;
}
export declare class TemporalModifierManager {
    private static instance;
    private activeStates;
    private nextId;
    private constructor();
    static getInstance(): TemporalModifierManager;
    register(options: TemporalModifierOptions): string;
    unregister(id: string): boolean;
    getActiveStates(): TemporalState[];
    getStatesForElement(element: HTMLElement): TemporalState[];
    clearAll(): void;
    get activeCount(): number;
}
export declare function createToggleUntil(element: HTMLElement, targetType: 'class' | 'attribute', targetName: string, untilEvent: string, untilTarget?: HTMLElement | Document | Window): string;
export declare function createAddUntil(element: HTMLElement, targetType: 'class' | 'attribute', targetName: string, targetValue: string | undefined, untilEvent: string, untilTarget?: HTMLElement | Document | Window): string;
export declare function createRemoveUntil(element: HTMLElement, targetType: 'class' | 'attribute', targetName: string, untilEvent: string, untilTarget?: HTMLElement | Document | Window): string;
export declare const temporalModifierManager: TemporalModifierManager;
export default TemporalModifierManager;
//# sourceMappingURL=temporal-modifiers.d.ts.map