import { FocusTrap } from 'focus-trap';
declare global {
    interface Window {
        _nc_focus_trap: FocusTrap[];
    }
}
/**
 * Get the default global focus trap stack
 */
export declare function getTrapStack(): FocusTrap[];
/**
 * Create controller to pause/unpause the global focus trap stack.
 *
 * When some component manually implements its own focus-trap without using global focus-trap stack,
 * it also needs to pause the global stack to avoid conflict.
 *
 * Note: if global focus-trap stack was modified outside TrapStackController (likely due to user actions),
 * trap queue should be correctly handled by focus-trap itself.
 * It is no longer safe to unpause cached `pausedStack`, as it can disrupt the current focus trap state.
 * We assume that the focus-trap stack is self-regulated and ignore unpause.
 */
export declare function createTrapStackController(): {
    /**
     * Pause the current focus-trap stack
     */
    pause(): void;
    /**
     * Unpause the paused focus trap stack
     * If the actual stack is different from the paused one, ignore unpause.
     */
    unpause(): void;
};
