import { LitElement, PropertyValues } from 'lit'; import type { Placement, Strategy } from '@floating-ui/dom'; import type { Field } from './field.js'; import type { Menu, MenuItemFocusEvent, MenuSelectEvent } from './menu.js'; import type { Option } from './option.js'; declare const VALUE: unique symbol; declare const Base: Constructor & Constructor & Constructor & typeof LitElement; /** * @csspart field * @csspart menu * @csspart items * * @fires {Event} change - Fires when the value is changed. * @fires {Event} input - Fires when the value is changed. * * TODO: Render multiple values * FIXME: `aria-expanded` set twice by both Lit and Menu */ export declare class Select extends Base { #private; required: boolean; error: boolean; quick: boolean; offset: number; align: Placement; alignStrategy: Strategy; open: boolean; /** * Text to display in the field. Only set for SSR. */ displayText: string; get value(): string; set value(value: string); [VALUE]: string; get $options(): Option[]; get selectedIndex(): number; set selectedIndex(index: number); get selectedOptions(): Option[]; $field: Field; $menu: Menu; private lastUserSetValue; private lastUserSetSelectedIndex; private lastSelectedOption; private lastSelectedOptionRecords; render(): import("lit-html").TemplateResult<1>; /** * Example content: * * ```html * * ${this.renderFieldContent()} * * ``` */ protected renderField(): import("lit-html").TemplateResult<1>; /** * Example content: * * ```html * * * * ``` */ protected renderMenu(): import("lit-html").TemplateResult<1>; protected renderFieldContent(): import("lit-html").TemplateResult<1>; constructor(); protected firstUpdated(changed: PropertyValues): void; protected updated(changed: PropertyValues): void; /** * TODO: Handle clear action */ protected _handleFieldKeydown(event: KeyboardEvent): void; protected _handleMenuSelect(event: MenuSelectEvent): void; protected _handleMenuItemFocus(event: MenuItemFocusEvent): void; protected _handleFocusOut(event: FocusEvent): void; protected _handleSlotChange(): void; private selectItem; private initUserSelection; private updateValueAndDisplayText; private getSelectedOptions; formResetCallback(): void; formStateRestoreCallback(state: string): void; select(value: string): void; selectIndex(index: number): void; reset(): void; toggle(): void; } export {};