import { type TypeaheadPredicate } from '@aracna/core'; import { type CSSResultGroup, type PropertyDeclarations } from 'lit'; import { AriaListBoxController, AriaListBoxOptionController } from '../../controllers/aria-list-box-controller.js'; import { ElementSlug } from '../../definitions/enums.js'; import type { AriaListBoxElementEventMap, AriaListBoxOptionElementEventMap } from '../../definitions/events.js'; import type { QueryDeclarations } from '../../definitions/interfaces.js'; import { AracnaBaseElement as BaseElement } from '../core/base-element.js'; import { AracnaFormControlElement as FormControlElement } from '../core/form-control-element.js'; declare global { interface HTMLElementTagNameMap { 'aracna-aria-listbox': AriaListBoxElement; 'aracna-aria-listbox-option': AriaListBoxOptionElement; } } declare class AriaListBoxElement extends FormControlElement { protected aria: AriaListBoxController; /** * Properties */ /** */ multiple?: boolean; selectFirstOptionOnFocus?: boolean; selectionFollowsFocus?: boolean; typeaheadDebounceTime?: number; typeaheadPredicate?: TypeaheadPredicate; /** * Queries */ /** */ focusedOptionElement?: AriaListBoxOptionElement; optionElements: AriaListBoxOptionElement[]; selectedOptionElement?: AriaListBoxOptionElement; connectedCallback(): void; disconnectedCallback(): void; onBlur: () => void; onFocus: () => void; onKeyDown: (event: KeyboardEvent) => void; onTypeaheadMatch: (element: AriaListBoxOptionElement) => void; isOptionElementFocused(element: AriaListBoxOptionElement): boolean; get focusedOptionElementIndex(): number; get slug(): ElementSlug; get single(): boolean; get value(): any; set value(value: any); static properties: PropertyDeclarations; static queries: QueryDeclarations; } declare class AriaListBoxOptionElement extends BaseElement { protected aria: AriaListBoxOptionController; /** * Properties */ /** */ focused?: boolean; selected?: boolean; value?: any; /** * Queries */ /** */ rootElement?: AriaListBoxElement; connectedCallback(): void; disconnectedCallback(): void; onClick: () => void; onPointerDown: (event: PointerEvent) => void; blur(): void; focus(options?: FocusOptions | null): void; toggle(): void; select(): void; unselect(clear?: boolean): void; get slug(): ElementSlug; static properties: PropertyDeclarations; static queries: QueryDeclarations; static styles: CSSResultGroup; } export { AriaListBoxElement as AracnaAriaListBoxElement, AriaListBoxOptionElement as AracnaAriaListBoxOptionElement };