import { MaybeRefOrGetter } from 'vue';
export type FocusTrapFocusReason = "pointer" | "keyboard" | null;
export interface FocusTrapFocusoutPreventedEvent {
    detail: {
        focusReason: FocusTrapFocusReason;
    };
    readonly defaultPrevented: boolean;
    preventDefault: () => void;
}
export interface FocusTrapOptions {
    active: MaybeRefOrGetter<boolean>;
    autoFocus?: "first" | "container" | false;
    restoreFocus?: boolean;
    onAutoFocus?: () => void;
    onRestoreFocus?: () => void;
    onReleaseRequested?: (event: KeyboardEvent) => void;
    onFocusoutPrevented?: (event: FocusTrapFocusoutPreventedEvent) => void;
}
export declare function useFocusTrap(containerRef: MaybeRefOrGetter<HTMLElement | null>, options: FocusTrapOptions): {
    handleKeydown: (event: KeyboardEvent) => void;
    restoreOnClose: () => Promise<void>;
};
