import type { createFocusOutPreventedEvent } from './utils';
import type { ExtractPropTypes } from 'vue';
import type FocusTrap from './focus-trap.vue';
export declare const focusTrapProps: {
    readonly loop: {
        readonly type: import("vue").PropType<import("vuesax-alpha/es/utils").VsPropMergeType<BooleanConstructor, unknown, unknown>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __vsPropKey: true;
    };
    readonly trapped: {
        readonly type: import("vue").PropType<import("vuesax-alpha/es/utils").VsPropMergeType<BooleanConstructor, unknown, unknown>>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __vsPropKey: true;
    };
    readonly focusTrapEl: {
        readonly type: import("vue").PropType<HTMLElement>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __vsPropKey: true;
    };
    readonly focusStartEl: import("vuesax-alpha/es/utils").VsPropFinalized<(new (...args: any[]) => (HTMLElement | "first" | "container") & {}) | (() => HTMLElement | "first" | "container") | ((new (...args: any[]) => (HTMLElement | "first" | "container") & {}) | (() => HTMLElement | "first" | "container"))[], unknown, unknown, "first", boolean>;
};
export declare type FocusTrapProps = ExtractPropTypes<typeof focusTrapProps>;
declare type CustomEvent = ReturnType<typeof createFocusOutPreventedEvent>;
export declare const focusTrapEmits: {
    focusAfterTrapped: (e: Event) => boolean;
    focusAfterReleased: (e: CustomEvent) => globalThis.CustomEvent<any>;
    focusin: (e: FocusEvent | Event) => boolean;
    focusout: (e: FocusEvent | Event) => boolean;
    focusoutPrevented: (e: CustomEvent) => globalThis.CustomEvent<any>;
    releaseRequested: (e: KeyboardEvent | Event) => boolean;
};
export declare type FocusTrapInstance = InstanceType<typeof FocusTrap>;
export {};
