import { SelectOptions } from './select.types'; /** * Headless single-select dropdown. Wires ARIA `listbox`/`option`, roving * `aria-activedescendant`, full keyboard navigation and selection to existing * markup; it never applies visual styles. * * Markup: * ```html *
* *
*
A
*
B
*
*
* ``` */ export declare class Select { private readonly root; private readonly trigger; private readonly valueEl; private readonly listbox; private readonly placeholder; private readonly options; private selected; private opened; private activeIndex; private cleanups; constructor(root: HTMLElement, options?: SelectOptions); private valueOf; private labelOf; private isDisabled; private init; private get enabledOptions(); private onTriggerKeydown; private onKeydown; private onListboxClick; private updateActive; private selectOption; private applySelection; private renderSelection; private syncActiveToSelection; private onOutside; private emit; /** Open the listbox. No-op if already open. */ open(): void; /** Close the listbox. No-op if already closed. */ close(): void; /** Toggle the listbox open/closed. */ toggle(): void; get value(): string | null; /** Programmatically select a value. No-op if unknown or disabled. */ setValue(value: string): void; /** Subscribe to a DOM event on the root element. Returns an unsubscribe fn. */ on(event: string, handler: (event: E) => void): () => void; destroy(): void; }