import { Renderable } from '@tempots/dom';
/**
 * Focus trap options
 */
export interface FocusTrapOptions {
    /** Whether the focus trap is active */
    active?: boolean;
    /** Whether to handle escape key */
    escapeDeactivates?: boolean;
    /** Callback when escape key is pressed */
    onEscape?: () => void;
    /** Element to focus initially (if not provided, focuses first focusable element) */
    initialFocus?: HTMLElement | (() => HTMLElement | null);
    /** Element to return focus to when trap is deactivated */
    returnFocus?: HTMLElement | (() => HTMLElement | null);
    /** Whether to prevent outside clicks */
    clickOutsideDeactivates?: boolean;
    /** Callback when clicking outside */
    onClickOutside?: () => void;
}
/**
 * Creates a focus trap within an element
 * Returns a TNode that should be added to the container element
 */
export declare function FocusTrap(options?: FocusTrapOptions): Renderable;
/**
 * Hook for managing focus trap state
 */
export declare function useFocusTrap(options?: FocusTrapOptions): {
    activate: () => Renderable;
    deactivate: () => Renderable;
};
