import { Placement } from "@floating-ui/dom"; import { EventEmitter } from "../../stencil-public-runtime"; import { SwirlFormInput } from "../../utils"; export declare class SwirlSelect implements SwirlFormInput { el: HTMLElement; allowDeselect?: boolean; disabled?: boolean; emptyListLabel?: string; inline?: boolean; invalid?: boolean; label: string; multiSelect?: boolean; required?: boolean; searchInputLabel?: string; searchLoading?: boolean; searchPlaceholder?: string; selectId?: string; standalone?: boolean; swirlAriaDescribedby?: string; value?: string[]; withSearch?: boolean; options: HTMLSwirlOptionListItemElement[]; open: boolean; placement: Placement; searchChange: EventEmitter; valueChange: EventEmitter; private input; private observer; private optionList; private searchInput; private swirlPopover; private typeaheadBuffer; private typeaheadTimeout; componentWillLoad(): void; disconnectedCallback(): void; onWindowFocusIn(event: FocusEvent): void; onValueChange(newValue: string[], oldValue: string[]): void; private observeSlotChanges; private updateOptions; private select; private unselectOption; private onSlotChange; private onOpen; private onClose; private onKeyDown; /** * Returns true for printable single-character keys that should trigger * typeahead, excluding Space (used for selection) and keys combined with * modifiers. Ignores events from the search input. */ private isTypeaheadKey; /** * Manages the typeahead buffer and delegates to either cycling (repeated * same character) or prefix matching (different characters). Resets the * buffer if transitioning out of cycling mode. The buffer auto-clears * after 500ms of inactivity. */ private handleTypeahead; /** * Cycles focus/selection through options that start with the given * character, wrapping around to the first match after the last one. */ private cycleTypeahead; /** * Finds the first enabled option whose label starts with the given prefix * (case-insensitive) and focuses/selects it. Returns whether a match was * found, so the caller can fall back to a single-character retry. */ private prefixMatchTypeahead; /** * Returns the value of the currently focused option (when open) or the * last selected value (when closed), used as the starting point for cycling. */ private getTypeaheadAnchorValue; /** * Applies a typeahead match by focusing the option in the open list. */ private applyTypeaheadMatch; private onSearchInput; private getValueLabel; render(): any; }