import React, { Ref, ReactNode, MouseEventHandler } from 'react';
import { RenderOverride } from '../lib/render-override';
import { IWithControlProps } from '../withControl/withControl';
import { IWithControlProps as IWithControlPropsDesktop } from '../withControl/withControl@desktop';
import { ITextareaControlProps } from './Control/Textarea-Control';
import './Textarea.css';
export interface ITextareaProps extends IWithControlProps<HTMLTextAreaElement>, IWithControlPropsDesktop<HTMLTextAreaElement>, ITextareaControlProps {
    /**
     * Событие, которое вызывается при нажатии на компонент
     */
    onClick?: MouseEventHandler<HTMLElement>;
    /**
     * Событие по своему действию похоже на `onClick` и возникает в момент нажатия на кнопку мыши.
     * `onClick` в каком-то смысле является комбинацией событий `onMouseDown` и `onMouseUp`
     */
    onMouseDown?: MouseEventHandler<HTMLElement>;
    /**
     * Событие по своему действию противоположно событию `onMouseDown` и происходит при отпускании кнопки мыши.
     * Курсор должен находится в пределах HTML-элемента, к которому добавлен атрибут `onmouseup`
     */
    onMouseUp?: MouseEventHandler<HTMLElement>;
    /**
     * Обработчик события `onMouseLeave`
     */
    onMouseLeave?: MouseEventHandler<HTMLElement>;
    /**
     * Обработчик события `onMouseEnter`
     */
    onMouseEnter?: MouseEventHandler<HTMLElement>;
    /**
     * Состояние фокуса на компоненте
     */
    focused?: boolean;
    /**
     * Состояние нажатия на компоненте
     */
    pressed?: boolean;
    /**
     * Неактивное состояние компонента.
     * Состояние, при котором компонент отображается, но недоступен для действий пользователя
     */
    disabled?: boolean;
    /**
     * Состояние, которое возникает при наведении на компонент курсором
     */
    hovered?: boolean;
    /**
     * Дополнительный контент после контрола.
     */
    addonAfter?: ReactNode;
    /**
     * Дополнительный контент перед контролом.
     */
    addonBefore?: ReactNode;
    /**
     * Ссылка на корневой DOM элемент компонента.
     */
    innerRef?: Ref<HTMLSpanElement>;
    /**
     * Ссылка на враппер DOM-элемента нативного инпута.
     */
    wrapRef?: Ref<HTMLSpanElement>;
    /**
     * Текст-подсказка, появляющаяся после компонента.
     * Может иметь различное визуальное оформление в зависимости от свойства `state`.
     */
    hint?: string;
    /**
     * Визуальное состояние компонента.
     * Может использоваться при проверке формы на корректность.
     */
    state?: 'error';
    /**
     * Всплывающая подсказка
     */
    title?: string;
    /**
     * Переопределяет компонент `Control`
     */
    renderControl?: RenderOverride<ITextareaControlProps>;
}
export declare const cnTextarea: import("@bem-react/classname").ClassNameFormatter;
export declare const Textarea: React.ComponentClass<ITextareaProps, any>;
