import { LitElement } from 'lit';
declare const AtomicFocusTrap_base: import("../../../mixins/mixin-common").Constructor<{
    injectStyles(dynamicStyles?: import("lit").CSSResultGroup): Promise<void>;
}> & typeof LitElement;
/**
 * The `atomic-focus-trap` component manages focus within a modal or dialog,
 * ensuring keyboard navigation stays within the trap when active. When active,
 * it hides sibling elements from assistive technologies and restricts tab focus
 * to its descendants.
 */
export declare class AtomicFocusTrap extends AtomicFocusTrap_base {
    /**
     * Whether the focus trap is active.
     */
    active: boolean;
    /**
     * The source element to focus when the focus trap becomes inactive.
     */
    source?: HTMLElement;
    /**
     * The container to hide (instead of the focus trap element itself) from the tabindex and accessibility DOM
     * when the focus trap becomes inactive and `shouldHideSelf` is true.
     */
    container?: HTMLElement;
    /**
     * Whether the element should be hidden from screen readers & not interactive with the tab, when not active.
     */
    shouldHideSelf: boolean;
    /**
     * The common ancestor of the focus trap and of all the elements that should be inaccessible when inside the focus trap.
     */
    scope: Element;
    private readonly hiddenElements;
    connectedCallback(): void;
    disconnectedCallback(): void;
    private hide;
    private showAll;
    private hideSiblingsRecursively;
    private showSelf;
    private hideSelf;
    onDeactivated(isInitialLoad: boolean): Promise<void>;
    onActivated(isInitialLoad: boolean): Promise<void>;
    handleActiveChange(_prev?: boolean, next?: boolean): Promise<void>;
    private onFocusChanged;
    private get parentToHide();
}
declare global {
    interface HTMLElementTagNameMap {
        'atomic-focus-trap': AtomicFocusTrap;
    }
}
export {};
