import { FormControlValue } from '../internal/types.js'; import { FormControlMixinInstance } from './index.js'; type Constructor = (new (...args: any[]) => HTMLElement & { connectedCallback?(): void; attributeChangedCallback?(name: string, oldValue: string | null, newValue: string | null): void; requestUpdate?(name?: string, oldValue?: unknown): void; }) & { observedAttributes?: string[]; }; export type SelectFormControlValue = Extract; export interface SelectFormControlMixinInstance extends FormControlMixinInstance { /** * The number of options available in the select. */ length: number; /** * The options available in the select. */ options: HTMLOptionElement[]; /** * The index of the selected option. */ selectedIndex: number; /** * The selected options. */ selectedOptions: HTMLOptionElement[]; /** * The select control type. */ type: 'select-one'; /** * The selected value. * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#value * @attr value * @reflect */ value: SelectFormControlValue; updateSelectState(): void; } export type SelectFormControlMixinReturn = (new (...args: ConstructorParameters) => InstanceType & SelectFormControlMixinInstance) & { formAssociated: boolean; observedAttributes: string[]; } & Omit; /** * @description A mixin that adds native single-select form control behavior. */ export declare function SelectFormControlMixin(SuperClass: TBase): SelectFormControlMixinReturn; export {};