/**
 * IME Handler
 *
 * Handles Input Method Editor (IME) composition events for languages that require
 * multi-key input sequences (e.g., Chinese, Japanese, Korean).
 *
 * Strategy:
 * 1. Track composition state (start, update, end)
 * 2. Defer aggressive layout updates during composition
 * 3. Provide composition text for cursor positioning
 * 4. Signal when full layout should resume
 *
 * @module ime-handler
 */
/**
 * IME composition state.
 */
export interface ImeState {
    /** Whether IME composition is currently active */
    active: boolean;
    /** Current composition text */
    text: string;
    /** Selection start within composition */
    start: number;
    /** Selection end within composition */
    end: number;
}
/**
 * ImeHandler manages IME composition events and provides signals for
 * layout debouncing during multi-key input sequences.
 */
export declare class ImeHandler {
    private state;
    private layoutDebounceActive;
    /**
     * Called when composition starts (compositionstart event).
     *
     * @param event - CompositionEvent from browser
     */
    onCompositionStart(event: CompositionEvent): void;
    /**
     * Called when composition updates (compositionupdate event).
     *
     * @param event - CompositionEvent from browser
     */
    onCompositionUpdate(event: CompositionEvent): void;
    /**
     * Called when composition ends (compositionend event).
     *
     * @param event - CompositionEvent from browser
     */
    onCompositionEnd(event: CompositionEvent): void;
    /**
     * Check if IME composition is currently active.
     *
     * @returns True if composition is in progress
     */
    isActive(): boolean;
    /**
     * Get current composition text.
     *
     * @returns Composition text, or empty string if not composing
     */
    getCompositionText(): string;
    /**
     * Should layout be debounced more aggressively during composition?
     *
     * @returns True if layout should be deferred
     */
    shouldDeferLayout(): boolean;
    /**
     * Get full composition state for cursor positioning.
     *
     * @returns Current IME state
     */
    getState(): ImeState;
    /**
     * Manually reset IME state (useful for testing or error recovery).
     */
    reset(): void;
}
//# sourceMappingURL=ime-handler.d.ts.map