import { CSSResultGroup, PropertyValues, TemplateResult, LitElement } from 'lit'; export interface SelectChange { type: 'value'; value: string | string[]; } declare const SbbSelectElement_base: import('../core/mixins.js').Constructor & import('../core/mixins.js').AbstractConstructor & import('../core/mixins.js').AbstractConstructor & typeof LitElement; /** * It displays a panel with selectable options. * * @slot - Use the unnamed slot to add options. * @event {CustomEvent} didChange - Deprecated. used for React. Will probably be removed once React 19 is available. * @event {CustomEvent} change - Notifies that the component's value has changed. * @event {CustomEvent} input - Notifies that an option value has been selected. * @event {CustomEvent} willOpen - Emits whenever the `sbb-select` starts the opening transition. Can be canceled. * @event {CustomEvent} didOpen - Emits whenever the `sbb-select` is opened. * @event {CustomEvent} willClose - Emits whenever the `sbb-select` begins the closing transition. Can be canceled. * @event {CustomEvent} didClose - Emits whenever the `sbb-select` is closed. * @cssprop [--sbb-select-z-index=var(--sbb-overlay-default-z-index)] - To specify a custom stack order, * the `z-index` can be overridden by defining this CSS variable. The default `z-index` of the * component is set to `var(--sbb-overlay-default-z-index)` with a value of `1000`. */ export declare class SbbSelectElement extends SbbSelectElement_base { static styles: CSSResultGroup; static readonly events: { readonly didChange: "didChange"; readonly change: "change"; readonly input: "input"; readonly stateChange: "stateChange"; readonly willOpen: "willOpen"; readonly didOpen: "didOpen"; readonly willClose: "willClose"; readonly didClose: "didClose"; }; /** The value of the select component. If `multiple` is true, it's an array. */ value?: string | string[]; /** The placeholder used if no value has been selected. */ placeholder?: string; /** Whether the select allows for multiple selection. */ multiple: boolean; /** Whether the select is required. */ required: boolean; /** Whether the select is readonly. */ readonly: boolean; /** The state of the select. */ private set _state(value); private get _state(); /** The value displayed by the component. */ private _displayValue; /** * @deprecated only used for React. Will probably be removed once React 19 is available. */ private _didChange; /** Notifies that the component's value has changed. */ private _change; /** Notifies that an option value has been selected. */ private _input; /** @internal */ private _stateChange; /** Emits whenever the `sbb-select` starts the opening transition. */ private _willOpen; /** Emits whenever the `sbb-select` is opened. */ private _didOpen; /** Emits whenever the `sbb-select` begins the closing transition. */ private _willClose; /** Emits whenever the `sbb-select` is closed. */ private _didClose; private _overlay; private _optionContainer; private _originElement; private _triggerElement; private _openPanelEventsController; private _overlayId; private _activeItemIndex; private _searchTimeout?; private _searchString; private _didLoad; private _isPointerDownEventOnMenu; private _abort; /** * The 'combobox' input element * @internal */ get inputElement(): HTMLElement; /** Gets all the SbbOptionElement projected in the select. */ private get _options(); private get _filteredOptions(); /** Opens the selection panel. */ open(): void; /** Closes the selection panel. */ close(): void; /** Gets the current displayed value. */ getDisplayValue(): string; /** Listens to option changes. */ private _onOptionChanged; private _onOptionClick; /** Sets the _displayValue by checking the internal sbb-options and setting the correct `selected` value on them. */ private _onValueChanged; protected firstUpdated(changedProperties: PropertyValues): void; /** * Removes element's first attribute whose qualified name is qualifiedName. * * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute) * @internal We need to override this due to a hydration issue with Next.js. */ removeAttribute(qualifiedName: string): void; connectedCallback(): void; protected willUpdate(changedProperties: PropertyValues): void; disconnectedCallback(): void; private _syncProperties; private _setupSelect; /** Sets the originElement; if the component is used in a sbb-form-field uses it, otherwise uses the parentElement. */ private _setupOrigin; /** * To assess screen-readers problems caused by the interaction between aria patterns and shadow DOM, * we are forced to move the 'combobox' trigger element to the light DOM */ private _setupTrigger; private _setOverlayPosition; private _onAnimationEnd; private _onOpenAnimationEnd; private _onCloseAnimationEnd; /** When an option is selected, updates the displayValue; it also closes the select if not `multiple`. */ private _onOptionSelected; /** When an option is unselected in `multiple`, removes it from value and updates displayValue. */ private _onOptionDeselected; private _attachOpenPanelEvents; private _onKeyDown; private _closedPanelKeyboardInteraction; private _openedPanelKeyboardInteraction; private _checkForLetterSelection; private _setNextActiveOptionByText; private _selectByKeyboard; private _setNextActiveOption; private _setActiveElement; private _setSelectedElement; private _resetActiveElement; private _pointerDownListener; private _closeOnBackdropClick; private _setValueFromSelectedOption; private _toggleOpening; protected render(): TemplateResult; } declare global { interface HTMLElementTagNameMap { 'sbb-select': SbbSelectElement; } } export {}; //# sourceMappingURL=select.d.ts.map