import { WidgetBase } from '@dojo/framework/core/WidgetBase';
import { DNode } from '@dojo/framework/core/interfaces';
import { ThemedMixin, ThemedProperties } from '@dojo/framework/core/mixins/Themed';
import { FocusMixin, FocusProperties } from '@dojo/framework/core/mixins/Focus';
import { CustomAriaProperties, InputEventProperties, PointerEventProperties, KeyEventProperties } from '../common/interfaces';
/**
 * @type TextAreaProperties
 *
 * Properties that can be set on a TextInput component
 *
 * @property columns         Number of columns, controls the width of the textarea
 * @property rows            Number of rows, controls the height of the textarea
 * @property wrapText        Controls text wrapping. Can be "hard", "soft", or "off"
 * @property maxLength      Maximum number of characters allowed in the input
 * @property minLength      Minimum number of characters allowed in the input
 * @property placeholder    Placeholder text
 * @property value           The current value
 */
export interface TextAreaProperties extends ThemedProperties, FocusProperties, InputEventProperties, KeyEventProperties, PointerEventProperties, CustomAriaProperties {
    columns?: number;
    rows?: number;
    wrapText?: 'hard' | 'soft' | 'off';
    maxLength?: number | string;
    minLength?: number | string;
    placeholder?: string;
    value?: string;
    onClick?(value: string): void;
    valid?: {
        valid?: boolean;
        message?: string;
    } | boolean;
    onValidate?: (valid: boolean | undefined, message: string) => void;
    customValidator?: (value: string) => {
        valid?: boolean;
        message?: string;
    } | void;
    label?: string;
    labelHidden?: boolean;
    helperText?: string;
    disabled?: boolean;
    widgetId?: string;
    name?: string;
    readOnly?: boolean;
    required?: boolean;
}
declare const TextArea_base: import("@dojo/framework/core/interfaces").Constructor<ThemedMixin<{}>> & typeof WidgetBase & import("@dojo/framework/core/interfaces").Constructor<FocusMixin>;
export declare class TextArea extends TextArea_base<TextAreaProperties> {
    private _dirty;
    private _onBlur;
    private _onChange;
    private _onClick;
    private _onFocus;
    private _onInput;
    private _onKeyDown;
    private _onKeyPress;
    private _onKeyUp;
    private _onMouseDown;
    private _onMouseUp;
    private _onTouchStart;
    private _onTouchEnd;
    private _onTouchCancel;
    private _callOnValidate;
    private _validate;
    protected readonly validity: {
        valid: boolean | undefined;
        message: string | undefined;
    };
    private _uuid;
    protected getRootClasses(): (string | null)[];
    render(): DNode;
}
export default TextArea;
