import { DockviewCompositeDisposable as CompositeDisposable, DockviewIDisposable as IDisposable, DockviewGroupPanel, DockviewOverflowOptions, DockviewActivePanelChangeEvent, AdvancedOverflowRenderParams, IAdvancedOverflowHost, IAdvancedOverflowService } from 'dockview'; import { MruTracker } from './mruTracker'; /** * Case-insensitive substring predicate over a panel's title. Exported for unit * tests of the scope `group` vs `overflow` behaviour. */ export declare function matchesQuery(title: string, query: string): boolean; /** * One popover's worth of advanced overflow UI: a focused search input, a * `role="listbox"` of filtered / MRU-ordered rows (each row reusing the core * `buildRow` so its DOM + behaviour match the free dropdown), and a keyboard * controller. Constructed per popover-open and disposed on close. */ export declare class OverflowListView extends CompositeDisposable { private readonly params; private readonly mru; private readonly mruEnabled; private readonly _body; private readonly _list; private readonly _input; /** The element that holds DOM focus + `aria-activedescendant`. */ private readonly _focusTarget; private readonly _search; /** Candidate panel ids (pre-filter, pre-order): the search scope's set. */ private readonly _baseIds; /** Pinned tabs that clipped out of the strip. Rendered in a "Pinned" * section above the main list, and excluded from it to avoid a duplicate * row when the search scope is the whole group. */ private readonly _pinnedIds; private readonly _titleOf; /** The rendered rows in display order (group headers excluded). */ private _rows; private _activeIndex; private _debounce; constructor(params: AdvancedOverflowRenderParams, overflow: DockviewOverflowOptions | undefined, mru: MruTracker, mruEnabled: boolean); /** Build the initial list and open the popover, focusing the search input. */ open(): void; private _scheduleFilter; /** The base ids reordered by MRU (front = most recent), with never-activated * ids kept in their base (free clipped / DOM) order as the tiebreak. */ private _orderedIds; /** Build a row for `id`, wire its listbox-option attributes, append it to * the list, and register it for keyboard navigation. */ private _appendRow; private _renderList; private _setActiveIndex; private _move; private _onKeyDown; } /** * Advanced overflow module service, one per component. Owns the MRU model * (component-scoped, so recency survives a group closing) and constructs an * {@link OverflowListView} per popover-open. Self-wires MRU tracking off the * host's group / active-panel events via {@link init}. */ export declare class AdvancedOverflowService extends CompositeDisposable implements IAdvancedOverflowService { private readonly host; private readonly _mru; private _activeView; constructor(host: IAdvancedOverflowHost); /** The MRU model, exposed for the module's `init` wiring and unit tests. */ get mru(): MruTracker; /** * Attach MRU tracking to a group: seed its recency list from the current * tab order and prune closed panels. Returns a disposable that detaches on * group removal. */ attachToGroup(group: DockviewGroupPanel): IDisposable; /** Record a user-driven activation into the MRU model. */ handleActivePanelChange(event: DockviewActivePanelChangeEvent): void; renderOverflow(params: AdvancedOverflowRenderParams): void; } export declare const AdvancedOverflowModule: import("dockview").DockviewModule;