import { Component, ComponentPropsWithoutRef, SyntheticEvent } from 'react';
import './TextArea.less';
declare type Rows = number | {
    min: number;
    max: number;
};
export declare type TextAreaProps = {
    /**
     * @ignore
     */
    baseClassName?: string;
    /**
     * @ignore
     */
    className?: string;
    /**
     * Textarea width.
     * @since 1.9.0
     */
    size?: 'sm' | 'md' | 'lg' | 'xl' | 'fill';
    /**
     * Adjust height automatically when multiline option is set to true.
     * @since 1.9.0
     */
    autoheight?: boolean;
    /**
     * Number of rows, can be a range.
     * @since 1.9.0
     */
    rows?: Rows;
    /**
     * @ignore
     */
    onChange?: (e: SyntheticEvent<HTMLTextAreaElement>) => void;
} & Omit<ComponentPropsWithoutRef<'textarea'>, 'rows'>;
declare type TextAreaState = {
    textareaStyles: any;
    minRows?: number;
    maxRows?: number;
};
/**
 * `TextArea` is used for entering long text (like email body, descriptions, comments).
 * @since 1.9.0
 */
declare class TextArea extends Component<TextAreaProps, TextAreaState> {
    static defaultProps: {
        baseClassName: string;
        className: null;
        rows: number;
        size: string;
        autoheight: boolean;
        onChange: null;
    };
    state: TextAreaState;
    static getDerivedStateFromProps({ rows }: TextAreaProps): {
        minRows: number;
        maxRows?: undefined;
    } | {
        minRows: number;
        maxRows: number;
    } | null;
    componentDidMount(): void;
    componentDidUpdate(prevProps: TextAreaProps): void;
    rootRef: import("react").RefObject<HTMLTextAreaElement>;
    handleChange: (e: SyntheticEvent<HTMLTextAreaElement>) => void;
    adjustHeight(): void;
    render(): JSX.Element;
}
export default TextArea;
