import type { PropertyValues, TemplateResult } from "lit"; import { XmField } from "../field/index.js"; export declare class XmTextarea extends XmField { static styles: CSSStyleSheet[]; /** Initial visible height in text rows. */ rows: number; /** Native placeholder — shown when the live value is empty. */ placeholder: string; /** Grow the textarea height with content up to `maxRows` (no scroll jitter). */ autoGrow: boolean; /** Cap for auto-grow, in rows. Beyond it the textarea scrolls. */ maxRows: number; private _textarea; protected updated(changed: PropertyValues): void; private _onInput; private _onChange; /** Reset then snap to scrollHeight, clamped to maxRows. Reading scrollHeight after a height reset is the only reliable shrink-and-grow measurement; it's a single synchronous layout read per input, not an animation. */ private _resize; protected renderControl(): TemplateResult; } declare global { interface HTMLElementTagNameMap { "xm-textarea": XmTextarea; } }