import React from 'react';
interface SideCarProps {
    id: Record<string, any>;
    sideCar: unknown;
    observed: Element | null;
    disabled: boolean;
    persistentFocus: boolean;
    crossFrame: boolean;
    autoFocus: boolean;
    whiteList?: (element: Element) => boolean;
    shards: Array<React.RefObject<Element>>;
    onActivation: (event: {
        captureFocusRestore: (element: HTMLElement | null) => HTMLElement | null;
    }) => void;
    onDeactivation: () => void;
    returnFocus: (allowDefer: boolean) => void;
    focusOptions?: FocusOptions;
}
export interface LockProps {
    children: React.ReactNode;
    disabled?: boolean;
    noFocusGuards?: boolean;
    persistentFocus?: boolean;
    crossFrame?: boolean;
    autoFocus?: boolean;
    allowTextSelection?: boolean;
    group?: string;
    className?: string;
    whiteList?: (element: Element) => boolean;
    hasPositiveIndices?: boolean;
    shards?: Array<React.RefObject<Element>>;
    as?: string;
    lockProps?: React.CSSProperties;
    sideCar?: React.ComponentType<SideCarProps>;
    returnFocus?: boolean | ((allowDefer: boolean | HTMLElement) => void);
    focusOptions?: FocusOptions;
    onActivation?: (event: {
        captureFocusRestore: (element: Element) => Element;
    }) => void;
    onDeactivation?: () => void;
}
declare const FocusLock: React.ForwardRefExoticComponent<LockProps & React.RefAttributes<Element>>;
export default FocusLock;
