import { IDisposable, IValueDisposable } from '../../../lifecycle'; import { DockviewComponent } from '../../dockviewComponent'; import { DockviewGroupPanel } from '../../dockviewGroupPanel'; import { DockviewHeaderDirection } from '../../options'; import { Tab } from '../tab/tab'; import { ITabGroup } from '../../tabGroup'; import { ITabGroupChipRenderer } from '../../framework'; export interface TabGroupManagerContext { readonly group: DockviewGroupPanel; readonly accessor: DockviewComponent; readonly tabsList: HTMLElement; getTabs(): IValueDisposable[]; getTabMap(): Map>; getDirection(): DockviewHeaderDirection; } export interface TabGroupManagerCallbacks { onChipContextMenu(tabGroup: ITabGroup, event: MouseEvent): void; onChipDragStart(tabGroup: ITabGroup, chip: ITabGroupChipRenderer, event: DragEvent): void; } export declare class TabGroupManager { private readonly _ctx; private readonly _callbacks; private readonly _chipRenderers; private _indicator; private _skipNextCollapseAnimation; private readonly _pendingTransitionCleanups; get chipRenderers(): ReadonlyMap; get groupUnderlines(): ReadonlyMap; get skipNextCollapseAnimation(): boolean; set skipNextCollapseAnimation(value: boolean); constructor(_ctx: TabGroupManagerContext, _callbacks: TabGroupManagerCallbacks); /** * Synchronize chip elements and CSS classes for all tab groups * in the parent group model. Call after any tab group mutation. */ update(): void; /** * Re-read the active palette and re-apply colors to chips, tabs and * the indicator. Called when `tabGroupColors` / `tabGroupAccent` * options change at runtime. */ refreshAccents(): void; positionAllChips(): void; snapshotChipWidths(): Map; positionUnderlines(): void; trackUnderlines(): void; setGroupDragImage(event: DragEvent, tabGroup: ITabGroup, chipEl: HTMLElement): void; cleanupTransition(panelId: string): void; disposeAll(): void; private _ensureIndicator; private _ensureChipForGroup; private _positionChipForGroup; private _updateTabGroupClasses; }