import { LitElement } from 'lit'; import { type ValidatorFn } from '../../utils/validators.js'; export interface SelectOption { label: string; value: string; disabled?: boolean; icon?: string; description?: string; } /** * Select dropdown component * * @fires change - Dispatched when selection changes * @fires focus - Dispatched when select gains focus * @fires blur - Dispatched when select loses focus * @fires search - Dispatched when search input changes * * @csspart container - The container element * @csspart label - The label element * @csspart select - The select element * @csspart helper - The helper text element * @csspart error - The error message element */ export declare class UISelect extends LitElement { static styles: import("lit").CSSResult; value: string; label: string; placeholder: string; helper: string; error: string; name: string; size: 'sm' | 'md' | 'lg'; disabled: boolean; required: boolean; multiple: boolean; options: SelectOption[]; searchable: boolean; loading: boolean; virtualScroll: boolean; customTemplate: boolean; /** Whether to validate on blur */ validateOnBlur: boolean; /** Programmatic validators */ validators: ValidatorFn[]; /** * Custom ARIA label (overrides label text for screen readers) */ ariaLabel: string | null; /** * ID of element that describes this select */ ariaDescribedby: string | null; private selectId; private helperId; private errorId; private handleChange; private handleFocus; private handleBlur; /** * Run all validators and update error state. * Returns true if value is valid. */ validate(): boolean; /** Reset validation state */ resetValidation(): void; render(): import("lit-html").TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'ui-select': UISelect; } } //# sourceMappingURL=select.d.ts.map