import { type Options } from 'focus-trap';
import { type ReactNode } from 'react';
/**
 * Thin React wrapper around the ESM `focus-trap` package, providing the subset of
 * `focus-trap-react`'s API used by this package (`active` + `focusTrapOptions`).
 * `focus-trap-react` is published as CommonJS and calls `require('react')`, which breaks
 * in consumers that bundle this package's ESM output with `react` marked as external.
 *
 * Like `focus-trap-react`, the single child element is cloned and receives a ref so
 * the focus trap targets the child directly without adding a wrapper DOM node.
 */
export interface FocusTrapProps {
    active: boolean;
    focusTrapOptions?: Options;
    children: ReactNode;
}
interface MutableRefObject<T> {
    current: T;
}
type ChildRef = ((instance: HTMLElement | null) => void) | MutableRefObject<HTMLElement | null> | null | undefined;
export declare const FocusTrap: ({ active, focusTrapOptions, children }: FocusTrapProps) => import("react").ReactElement<{
    ref?: ChildRef;
}, string | import("react").JSXElementConstructor<any>>;
export {};
//# sourceMappingURL=focus-trap.d.ts.map