import { TabsOptions } from './tabs.types';
/**
* Headless tabs controller. Wires ARIA `tablist`/`tab`/`tabpanel`, roving
* tabindex, arrow-key navigation and selection to existing markup; it never
* applies visual styles.
*
* Markup:
* ```html
*
*
*
*
*
*
Panel A
*
Panel B
*
* ```
*/
export declare class Tabs {
private readonly root;
private readonly list;
private readonly orientation;
private readonly activationMode;
private tabs;
private selected;
private cleanups;
constructor(root: HTMLElement, options?: TabsOptions);
private collect;
private init;
private currentIndex;
private onKeydown;
private render;
private emit;
/** Select a tab by value. No-op if already selected or value is unknown. */
select(value: string): void;
get value(): string;
/** Subscribe to a DOM event on the root element. Returns an unsubscribe fn. */
on(event: string, handler: (event: E) => void): () => void;
destroy(): void;
}