/// <reference types="react" />
import * as React from "react";
import { DomFieldProps } from "../contracts/field";
import { BaseDomField, BaseDomFieldState } from "../abstractions/base-dom-field";
import { FieldOnChangeCallback, HTMLElementProps } from "../contracts/field";
export declare type TextAreaOnChangeCallback = FieldOnChangeCallback<HTMLTextAreaElement>;
/**
 * Override the differences between extended interfaces.
 */
export interface TextAreaProps extends DomFieldProps, HTMLElementProps<HTMLTextAreaElement> {
    name: string;
    onFocus?: React.EventHandler<React.FocusEvent<HTMLTextAreaElement>>;
    onBlur?: React.EventHandler<React.FocusEvent<HTMLTextAreaElement>>;
    onChange?: TextAreaOnChangeCallback;
    defaultValue?: string;
    initialValue?: string;
    value?: string;
    ref?: React.Ref<TextArea>;
}
export declare class TextArea extends BaseDomField<TextAreaProps, BaseDomFieldState> {
    protected GetValueFromEvent(event: React.ChangeEvent<HTMLTextAreaElement>): string;
    protected OnChangeHandler: React.ChangeEventHandler<HTMLTextAreaElement>;
    protected readonly RawDefaultValue: string;
    renderField(): JSX.Element | null;
}
