import * as _angular_core from '@angular/core';
import { ElementRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
/**
* Multi-line text input.
*
* Implements `ControlValueAccessor`. Optional `autosize` grows the
* textarea with its content, capped at `maxRows` if provided.
*
* @example
* ```html
*
*
* ```
*
* @see https://ngwr.dev/components/textarea
*/
type WrTextareaSize = 'sm' | 'md' | 'lg';
type WrTextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';
declare class WrTextarea implements ControlValueAccessor {
/** Native placeholder text. @default '' */
readonly placeholder: _angular_core.InputSignal;
/** Control size — shares the `--wr-control-*` contract. @default 'md' */
readonly size: _angular_core.InputSignal;
/** Visible row count. @default 3 */
readonly rows: _angular_core.InputSignalWithTransform;
/** Allow user resize via the corner grip. @default true */
readonly resizable: _angular_core.InputSignalWithTransform;
/** Resize direction of the corner grip (the grip icon adapts). @default 'vertical' */
readonly resize: _angular_core.InputSignal;
/** Read-only state. @default false */
readonly readonly: _angular_core.InputSignalWithTransform;
/** Grow the textarea to fit its content. @default false */
readonly autosize: _angular_core.InputSignalWithTransform;
/** Cap autosize at this many rows. Ignored when `autosize` is false. */
readonly maxRows: _angular_core.InputSignal;
/**
* Disable the textarea. Also set by Angular forms via `setDisabledState`.
*
* @default false
*/
readonly disabled: _angular_core.InputSignalWithTransform;
protected readonly value: _angular_core.WritableSignal;
protected readonly disabledFromCva: _angular_core.WritableSignal;
protected readonly focused: _angular_core.WritableSignal;
protected readonly effectiveDisabled: _angular_core.Signal;
protected readonly native: _angular_core.Signal>;
/** Resize direction, gated by `resizable` (false → 'none'). */
protected readonly effectiveResize: _angular_core.Signal;
protected readonly classes: _angular_core.Signal;
/** Show the corner grip (hidden when direction is 'none' / autosize / disabled). */
protected readonly showHandle: _angular_core.Signal;
private readonly platformId;
private readonly isBrowser;
private readonly hostEl;
private onChange;
private onTouched;
private resizing;
private resizeStartY;
private resizeStartX;
private resizeStartHeight;
private resizeStartWidth;
private resizeMinHeight;
private resizeMaxWidth;
constructor();
writeValue(value: string | null): void;
registerOnChange(fn: (value: string) => void): void;
registerOnTouched(fn: () => void): void;
setDisabledState(isDisabled: boolean): void;
protected onInput(event: Event): void;
protected onBlur(): void;
protected startResize(event: PointerEvent): void;
protected onResize(event: PointerEvent): void;
protected endResize(event: PointerEvent): void;
private autofit;
static ɵfac: _angular_core.ɵɵFactoryDeclaration;
static ɵcmp: _angular_core.ɵɵComponentDeclaration;
}
export { WrTextarea };
export type { WrTextareaResize, WrTextareaSize };