import { DockviewCompositeDisposable as CompositeDisposable, IKeyboardNavigationHost, IKeyboardDockingService } from 'dockview'; /** * Advanced keyboard control: drive the layout itself without a mouse. Opt-in * via `keyboardNavigation` (shared with the default navigation module). * * - **Spatial group focus** (`Ctrl+Shift+Arrows`): move focus to the visually * adjacent group via the `adjacentGroupInDirection` geometry primitive. * - **Keyboard docking** (`Ctrl+M`): arms a two-phase move of the active panel * with a live drop preview + screen-reader narration: * 1. Pick target: arrows cycle the groups (incl. the panel's own, so a tab * can be split out); `Enter` selects one. * 2. Pick edge: arrows choose a split edge (left/right/top/bottom) or the * centre (tab-into); `Enter` commits, `Escape` steps back. * From the target phase, `Ctrl+Shift+F` floats the panel as a terminal * action; `Escape` cancels. * * While a move is in progress it marks the root with * {@link KEYBOARD_MOVE_ATTRIBUTE} so the default navigation listener stands * down and the move keys aren't double-handled. */ export declare class KeyboardDockingService extends CompositeDisposable implements IKeyboardDockingService { private readonly host; private _move; private _preview; /** On-screen hint mirroring the SR narration during an armed move. */ private _hint; constructor(host: IKeyboardNavigationHost); private get _enabled(); private get _keymap(); private get _messages(); private _onKeyDown; private _focusGroupInDirection; private _focusGroup; private _restoreFocus; private _enterMoveMode; private _onMoveKey; private _onEscapeKey; private _onEnterKey; private _onTargetPhaseKey; private _onEdgePhaseKey; /** * Re-resolve the targeted group against the *live* grid. A group can be * removed between arm-time and now (auto-close timer, programmatic * `removeGroup`, collaborative edit); re-reading `host.groups` and clamping * the index keeps the move pointing at a real, undisposed group instead of * a stale snapshot entry. Returns `undefined` when no groups remain. */ private _resolveTargetGroup; private _abortMove; private _render; private _commit; private _float; private _exit; private _clearPreview; /** * Show a visible on-screen hint carrying the same guidance the LiveRegion * speaks. `aria-hidden` because the LiveRegion already announces it (avoids * a double read); it is a purely visual affordance. Styleable via * `.dv-keyboard-docking-hint`. */ private _showHint; /** The document of the window that currently has focus (a popout, if a * keydown was made there), falling back to the main window. */ private _focusedDocument; private _hideHint; private _consume; private _label; } export declare const KeyboardDockingModule: import("dockview").DockviewModule;