import { LitElement } from 'lit'; import '../Icon/Icon'; declare global { interface HTMLElementTagNameMap { 'ctt-textarea-input': CttTextareaInput; } } declare const CttTextareaInput_base: (new (...args: any[]) => import("../../utils/form-associated-mixin").FormAssociatedBase) & typeof LitElement; /** * CTT TextareaInput Component * * A comprehensive textarea input component with built-in validation, error handling, * auto-resize capabilities, size variants, and accessibility features. Works seamlessly across different frameworks. * * @fires input - Fired when the input value changes * @fires change - Fired when the input loses focus and value has changed * @fires focus - Fired when the input gains focus * @fires blur - Fired when the input loses focus * * @example * ```html * * * * * * * * * ``` * * @example * ```javascript * // React usage * setDescription(e.detail.value)} * /> * ``` */ export declare class CttTextareaInput extends CttTextareaInput_base { static styles: import("lit").CSSResult; /** * The label text to display above the textarea */ label: string; /** * The name attribute for the textarea input */ name: string; /** * The current value of the textarea */ get value(): string; set value(value: string); private _value; /** * Placeholder text to display when textarea is empty */ placeholder: string; /** * Whether the textarea is disabled */ disabled: boolean; /** * Whether the textarea is required for form validation */ required: boolean; /** * Whether the textarea is readonly */ readonly: boolean; /** * Number of visible text lines for the control */ rows: number; /** * Number of visible character widths for the control */ cols: number; /** * Maximum number of characters allowed */ maxlength: number; /** * Minimum number of characters required */ minlength: number; /** * Whether the textarea should automatically resize based on content */ autoResize: boolean; /** * Whether to show character count */ showCount: boolean; /** * Error message to display below the textarea */ /** * Hint text to display below the textarea */ hint: string; /** * The id attribute for the textarea element */ id: string; /** * Additional CSS classes to apply */ className: string; /** * Accessible label for screen readers when a visual label is not provided */ ariaLabel: string | null; /** * IDs of elements that describe this textarea */ ariaLabelledby: string | null; /** * How the textarea can be resized by the user */ resize: 'none' | 'both' | 'horizontal' | 'vertical'; /** * Size variant of the textarea input */ size: 'small' | 'medium' | 'large'; /** * Reference to the textarea element */ private _textarea?; constructor(); connectedCallback(): void; firstUpdated(_changedProperties?: Map): void; updated(changedProperties: Map): void; disconnectedCallback(): void; protected _isValid(): boolean; protected _getValidationMessage(): string; protected _getNativeInput(): HTMLTextAreaElement | undefined; /** * Extend validity to include tooShort / tooLong states specific to textarea. */ get validity(): ValidityState; /** * Setup auto-resize functionality */ private _setupAutoResize; /** * Teardown auto-resize functionality */ private _teardownAutoResize; /** * Adjust textarea height based on content */ private _adjustHeight; /** * Handle textarea input events */ private _handleInput; /** * Handle textarea change events */ private _handleChange; /** * Handle textarea focus events */ private _handleFocus; /** * Handle textarea blur events */ private _handleBlur; /** * Focus the textarea element */ focus(): void; /** * Blur the textarea element */ blur(): void; /** * Select all text in the textarea */ select(): void; /** * Set selection range in the textarea */ setSelectionRange(start: number, end: number, direction?: 'forward' | 'backward' | 'none'): void; render(): import("lit-html").TemplateResult<1>; private get _errorIcon(); } export {};