import { LitElement } from 'lit'; import { type ValidatorFn } from '../../utils/validators.js'; /** * Input component with validation support * * @fires input - Dispatched when input value changes * @fires change - Dispatched when input loses focus with changed value * @fires focus - Dispatched when input gains focus * @fires blur - Dispatched when input loses focus * * @csspart container - The container element * @csspart label - The label element * @csspart input - The input element * @csspart helper - The helper text element * @csspart error - The error message element */ export declare class UIInput extends LitElement { static styles: import("lit").CSSResult; value: string; type: 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search'; label: string; placeholder: string; helper: string; error: string; name: string; size: 'sm' | 'md' | 'lg'; disabled: boolean; required: boolean; readonly: boolean; autocomplete?: string; clearable: boolean; showCharacterCount: boolean; maxlength?: number; mask?: 'phone' | 'credit-card' | 'currency' | 'date'; /** Pattern regex for built-in validation */ validationPattern?: string; /** Whether to validate on blur (default: true) */ validateOnBlur: boolean; /** Whether to validate on input */ validateOnInput: boolean; /** Programmatic validators */ validators: ValidatorFn[]; /** * Custom ARIA label (overrides label text for screen readers) */ ariaLabel: string | null; /** * ID of element that describes this input */ ariaDescribedby: string | null; private hasPrefix; private hasSuffix; private inputId; private helperId; private errorId; firstUpdated(): void; private applyMask; private handleInput; private handleClear; private handleChange; private handleFocus; private handleBlur; /** * Run all validators and update error state. * Returns true if the value is valid. */ validate(): boolean; /** Reset validation state */ resetValidation(): void; render(): import("lit-html").TemplateResult<1>; } /** * Textarea component */ export declare class UITextarea extends LitElement { static styles: import("lit").CSSResult; value: string; label: string; placeholder: string; helper: string; error: string; rows: number; disabled: boolean; required: boolean; /** * Custom ARIA label (overrides label text for screen readers) */ ariaLabel: string | null; /** * ID of element that describes this textarea */ ariaDescribedby: string | null; private textareaId; private helperId; private errorId; private handleInput; render(): import("lit-html").TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'ui-input': UIInput; 'ui-textarea': UITextarea; } } //# sourceMappingURL=input.d.ts.map