import { DockviewCompositeDisposable as CompositeDisposable, IKeyboardNavigationHost, IKeyboardNavigationService } from 'dockview'; /** * Keyboard navigation & focus management: operate the dock without a mouse. * Opt-in via `keyboardNavigation`, with a rebindable {@link DockviewKeybindings} * keymap. * * - **Switch tab** (`Ctrl+]` / `Ctrl+[`): cycle the focused group's tabs. * - **Focus group** (`F6` / `Shift+F6`): move focus to the next / previous * group in sequence. * - **Focus the tab strip** (`Ctrl+Shift+\`): jump focus from panel content to * the active group's tab strip (the strip's roving-tabindex takes over). * - **Toggle pin** (`Ctrl+Shift+Enter`): pin / unpin the active panel's tab. * Inert unless the pinned-tabs feature is enabled. * - **Focus restore on close**: when removing a panel/group pulls focus out of * the dock, focus returns to the neighbour the layout just activated instead * of being stranded on ``. * - **Floating `Esc`**: `Esc` inside a floating group returns focus to the * control that had it before entering the float (polite: bubble phase, * respects `defaultPrevented`, so panel content keeps `Esc`). * - **Floating Tab-containment**: Tab wraps within the floating group so focus * doesn't leak to the grid behind it. * * Stands down while an advanced keyboard move is in progress (see * {@link KEYBOARD_MOVE_ATTRIBUTE}) so the docking module owns the keys then. */ export declare class KeyboardNavigationService extends CompositeDisposable implements IKeyboardNavigationService { private readonly host; private _focusWasInside; private _lastNonFloatFocus; constructor(host: IKeyboardNavigationHost); private get _moveActive(); /** Mutations that can strand focus on `` and so warrant a restore. */ private _restoresFocus; /** * The element that actually has focus, across windows: the `activeElement` * of whichever document currently holds focus (a popout, else the main * document). Each document tracks its own `activeElement` even when blurred, * so we must pick the focused one rather than trust the main document. */ private _activeElement; private _isFocusInside; private _onFloatingEscape; /** * Keep Tab inside the floating group that holds focus: at the last tabbable * Tab wraps to the first, at the first Shift+Tab wraps to the last. Returns * true if it handled the event. No-op outside a float. */ private _trapFloatTab; private _tabbables; private _returnFocusFromFloat; private get _nav(); private get _keymap(); private _onKeyDown; private _focusTabs; private _togglePin; private _switchTab; private _cycleGroup; private _focusGroup; /** Return DOM focus to the active group's content, keeping it in the dock. */ private _restoreFocus; private _consume; } export declare const KeyboardNavigationModule: import("dockview").DockviewModule;