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
*
* ```
*/
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;
}