import React, { Component, ChangeEventHandler } from 'react';
import './Textarea.css';
export declare type TextareaProps = {
    /**
     *Specifies the name attribute of input element
     */
    name?: string;
    /**
     *Specifies the id attribute of input element
     */
    id?: string;
    /**
     *Used to give a hint before entering value
     */
    placeholder?: string;
    /**
     *Pass the class names to be appended to this prop
     */
    className?: string;
    /**
     *Sets the width of the text area .It can be `small`| `medium` |`large` |`x-large`| `full`
     */
    width?: 'small' | 'medium' | 'large' | 'x-large' | 'full';
    /**
     *Used to limit the length of the input value characters
     */
    maxLength?: number;
    /**
     *Sets that the corresponding input is required and cannot be blank/empty
     */
    required?: boolean;
    /**
     *Used to disable the input field
     */
    disabled?: boolean;
    /**
     *Lets you add value in the text area
     */
    value?: string;
    /**
     *Specifies the row space taken by the text area
     */
    rows?: number;
    /**
     *Used to visually indicate an error
     */
    error?: boolean;
    /**
     *Shows the count of characters entered in the text area
     */
    showCharacterCount?: boolean;
    /**
     *The event occurs when the value of an element has been changed
     */
    onChange?: ChangeEventHandler<HTMLTextAreaElement>;
    /**
     *This will add a reference to the text area
     */
    inputRef?: React.Ref<HTMLTextAreaElement>;
    /**
     *Used for testing purposes
     */
    testId?: string;
    /**
     * Provides the directionality of the text
     */
    textDirection?: 'ltr' | 'rtl' | 'auto';
    /**
     * Lets you mention the version of TextArea to use
     */
    version?: 'v2';
    /**
     * Allows read-only access
     */
    isReadOnly?: boolean;
    /**
     * Lets you add suffix icon for input element
     */
    suffix?: React.ReactNode;
    /**
     * Lets you specify the maximum resizable height
     */
    maxHeight?: any;
    /**
     * Lets you specify the mainimum resizable height
     */
    minHeight?: any;
    /**
     * Provides an option to hide the character count error message.
     */
    hideCharCountError?: boolean;
} & typeof defaultProps;
export interface TextareaState {
    value?: string;
}
declare const defaultProps: {
    disabled: boolean;
    required: boolean;
    width: string;
    placeholder: string;
    testId: string;
    dir: string;
    isReadOnly: boolean;
    hideCharCountError: boolean;
};
export declare class Textarea extends Component<TextareaProps, TextareaState> {
    static defaultProps: {
        disabled: boolean;
        required: boolean;
        width: string;
        placeholder: string;
        testId: string;
        dir: string;
        isReadOnly: boolean;
        hideCharCountError: boolean;
    };
    state: {
        value: string;
    };
    y: number;
    h: number;
    defaultId: string;
    id: string;
    defaultMinHeight: number;
    defaultMaxHeight: number;
    revisedMinHeight: any;
    minHeight: any;
    reviseddMaxHeight: any;
    maxHeight: any;
    UNSAFE_componentWillReceiveProps(nextProps: TextareaProps): void;
    renderIsReadOnly: () => React.JSX.Element;
    renderSuffix: () => React.JSX.Element;
    mouseDownHandler: (e: {
        clientY: number;
    }) => void;
    mouseUpHandler: () => void;
    mouseMoveHandler: (e: {
        clientY: number;
    }) => void;
    componentDidMount(): () => void;
    render(): React.JSX.Element;
}
declare const _default: any;
export default _default;
