type TabReorderSource = 'pointer' | 'keyboard'; type TabDropPosition = 'before' | 'after'; interface TabReorder { barId: string; sourceId: string; targetId: string; position: TabDropPosition; source: TabReorderSource; } interface WireTabBarsOptions { onReorder: (change: TabReorder) => void; } declare function reorderTabs(items: readonly T[], getId: (item: T) => string, sourceId: string, targetId: string, position: TabDropPosition): T[]; /** Wire reordering and keyboard navigation while leaving controlled state in the application. */ declare function wireTabBars(root: HTMLElement | Document, { onReorder }: WireTabBarsOptions): () => void; export { type TabDropPosition, type TabReorder, type TabReorderSource, type WireTabBarsOptions, reorderTabs, wireTabBars };