import { LitElement } from 'lit'; import { LabelPosition } from '../../../shared/form-control-utils'; export type SelectSize = 'small' | 'large' | ''; export interface SelectChangeEventDetail { value: string | string[]; } export type SelectChangeEvent = CustomEvent; export interface SelectProps { size?: SelectSize; multiple?: boolean; disabled?: boolean; name?: string; multipleSize?: number; label?: string; labelPosition?: LabelPosition; labelHidden?: boolean; noLabel?: boolean; required?: boolean; invalid?: boolean; errorMessage?: string; helpText?: string; onClick?: (event: MouseEvent) => void; onFocus?: (event: FocusEvent) => void; onBlur?: (event: FocusEvent) => void; onChange?: (event: SelectChangeEvent) => void; } declare const Select_base: (new (...args: any[]) => import('../../../shared/face-mixin').FaceMixinInterface) & typeof LitElement; /** * Select component - A lightly styled native select element * * @slot - Option elements * * @csspart ag-select - The select element * * @fires change - Emitted when selection changes */ export declare class Select extends Select_base implements SelectProps { static shadowRootOptions: { delegatesFocus: boolean; clonable?: boolean; customElementRegistry?: CustomElementRegistry; mode: ShadowRootMode; serializable?: boolean; slotAssignment?: SlotAssignmentMode; }; size: SelectSize; multiple: boolean; disabled: boolean; multipleSize?: number; label: string; labelPosition: LabelPosition; labelHidden: boolean; noLabel: boolean; required: boolean; invalid: boolean; errorMessage: string; helpText: string; onClick?: (event: MouseEvent) => void; onFocus?: (event: FocusEvent) => void; onBlur?: (event: FocusEvent) => void; onChange?: (event: SelectChangeEvent) => void; private selectElement; /** * FACE lifecycle: called when the parent form is reset. * Restores each option to its defaultSelected state (the `selected` * attribute from the original HTML), then re-syncs the form value. */ formResetCallback(): void; /** * FACE lifecycle: called on session restore or browser autofill. * Restores the selected option(s) from the previously saved form state. * Uses updateComplete to ensure options are in the DOM before restoring. */ formStateRestoreCallback(state: File | string | FormData | null, _mode: 'restore' | 'autocomplete'): void; /** * Sync CustomStateSet states so :state() pseudo-classes work from external CSS. * * Must be called AFTER _syncValidity() so that :state(invalid) reads the * freshly-updated _internals.validity.valid value. * * Exposed states: * :state(disabled) — select is disabled * :state(required) — select is required * :state(invalid) — FACE constraint validation is failing */ private _syncStates; /** * Sync the form value to ElementInternals. * Single select: submits the selected value as a string. * Multi-select: uses the FormData overload to submit all selected values * under the same key (matching native . */ private _syncValidity; updated(changedProperties: Map): void; protected firstUpdated(): void; private handleSlotChange; static styles: import('lit').CSSResult[]; private handleClick; private handleFocus; private handleBlur; private handleChange; private renderLabel; render(): import('lit').TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'ag-select': Select; } } export {}; //# sourceMappingURL=_Select.d.ts.map