import { FocusTrapOptions, ActivateOptions, DeactivateOptions, PauseOptions, UnpauseOptions } from './types.js';

declare class FocusTrap {
    private trapStack;
    private config;
    private doc;
    private state;
    private portalContainers;
    private addPortalContainer;
    private observePortalContainer;
    private updatePortalContainers;
    get active(): boolean;
    get paused(): boolean;
    constructor(elements: HTMLElement | HTMLElement[], options: FocusTrapOptions);
    private findContainerIndex;
    private isControlledElement;
    private updateTabbableNodes;
    private listenerCleanups;
    private addListeners;
    private removeListeners;
    private handleFocus;
    private handlePointerDown;
    private handleClick;
    private handleTabKey;
    private handleEscapeKey;
    private _mutationObserver?;
    private setupMutationObserver;
    private updateObservedNodes;
    private getInitialFocusNode;
    private tryFocus;
    activate(activateOptions?: ActivateOptions): this;
    deactivate: (deactivateOptions?: DeactivateOptions) => this;
    pause: (pauseOptions?: PauseOptions) => this;
    unpause: (unpauseOptions?: UnpauseOptions) => this;
    updateContainerElements: (containerElements: HTMLElement | HTMLElement[]) => this;
    private getReturnFocusNode;
    private getOption;
    private getNodeForOption;
    private findNextNavNode;
}

export { FocusTrap };
