import { LitElement, PropertyValues } from 'lit'; import type { Field } from './field.js'; import type { Option } from './option.js'; import type { Popup } from './popup.js'; import type { Menu, MenuItemFocusEvent, MenuActionEvent } from './menu.js'; declare const VALUE: unique symbol; declare const Base: Constructor & Constructor & Constructor & typeof LitElement; /** * @csspart field * @csspart popup * @csspart menu * * @fires {Event} change - Fires when the value is changed. * @fires {Event} input - Fires when the value is changed. * * TODO: Render multiple values */ export declare class Select extends Base { #private; required: boolean; error: boolean; 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; $popup: Popup; $menu: Menu; private lastUserSetValue; private lastUserSetSelectedIndex; private lastSelectedOption; private lastSelectedOptionRecords; render(): import("lit-html").TemplateResult<1>; /** * Check example content from the m3 implementation */ protected renderField(): import("lit-html").TemplateResult<1>; /** * Check example content from the m3 implementation */ 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; protected _handleFieldKeydown(event: KeyboardEvent): void; protected _handleMenuAction(event: MenuActionEvent): void; protected _handleMenuItemFocus(event: MenuItemFocusEvent): 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 {};