import { type EventEmitter } from '../../stencil-public-runtime'; import type { SelectChangeEventDetail, SelectDropdownDirection, SelectState, SelectTheme, SelectToggleEventDetail } from './types'; /** * @component diwa-select * * A fully accessible single-select dropdown with built-in text filter, * keyboard navigation, and form integration. * * Based on the Diwa select API contract. * * Usage: * * Please select… * Apple * Banana * * * @slot default — diwa-select-option elements * @slot label — Custom label content (overrides the label prop) * @slot description — Custom description content * @slot message — Custom message content */ export declare class DiwaSelect { host: HTMLElement; /** Theme — cascades down to child options. */ theme: SelectTheme; /** Visible label text. */ label?: string; /** Optional description shown below the label. */ description?: string; /** HTML name attribute — identifies the field in form submissions. */ name: string; /** Currently selected value. Mutable — updated on user interaction. */ value?: string; /** Validation state. */ state: SelectState; /** Helper / validation message shown below the trigger. */ message?: string; /** Hides the label visually while keeping it accessible. */ hideLabel: boolean; /** Disables interaction. */ disabled: boolean; /** Marks the field as required. */ required: boolean; /** Compact variant — reduces the trigger height. */ compact: boolean; /** * Preferred direction for the dropdown panel. * `'auto'` detects viewport space and flips upward if needed. */ dropdownDirection: SelectDropdownDirection; /** Emitted when the selection changes. */ change: EventEmitter; /** Emitted when the dropdown opens or closes. */ toggle: EventEmitter; /** Emitted when the component loses focus (dropdown closes via click-outside). */ blur: EventEmitter; private isOpen; private hasFilterResults; private dropdownClass; private internalId; private triggerEl; private filterInputEl?; private options; private highlightedIndex; private childObserver?; onThemeChange(): void; onCompactChange(): void; onValueChange(): void; onIsOpenChange(open: boolean): void; connectedCallback(): void; disconnectedCallback(): void; componentDidLoad(): void; /** Programmatically opens the dropdown. */ open(): Promise; /** Programmatically closes the dropdown. */ close(): Promise; onOptionUpdate(e: CustomEvent<{ value: string | undefined; }>): void; onSlotChange(): void; private collectOptions; /** Shared handler for child mutations and slotchange — re-collects options and syncs state. */ private handleChildrenChanged; private syncSelectionFromValue; private syncChildThemes; private syncChildCompact; private getVisibleOptions; private getFirstHighlightIndex; private applyHighlight; private clearHighlight; private updateDropdownDirection; private resetFilter; private onClickOutside; private onTriggerClick; private onTriggerKeyDown; private onFilterInput; private get selectedLabel(); render(): any; } //# sourceMappingURL=diwa-select.d.ts.map