import { default as React } from 'react';
import { TUseValues } from '../../AHooks/useValues';
import { IABaseProps } from '../ABase/ABase';
import { IAWrapProps } from '../AWrap/AWrap';
export declare const ATextAreaTypes: readonly ["Primary", "Secondary", "ReadOnly", "Error"];
export type TTextAreaTypes = 'Primary' | 'Secondary' | 'ReadOnly' | 'Error';
export interface IATextAreaProps extends IABaseProps, IAWrapProps {
    /**
     * autoFocus? : boolean
     *
     * Description : decides whether the input is focused or not
     */
    autoFocus?: boolean;
    /**
     * isReadonly? : boolean
     *
     * Description : decides whether the input is isReadonly or not
     */
    isReadonly?: boolean;
    /**
     * maxLength? : number
     *
     * Description : maxLength of ATextArea
     */
    maxLength?: number;
    /**
     * onChange? : (e: React.ChangeEvent<HTMLTextAreaElement>) => void
     *
     * Description : onChange of ATextArea
     */
    onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
    /**
     * onEnterPress? : (value: string) => void
     *
     * Description : onEnterPress of ATextArea
     */
    onEnterPress?: (value: string) => void;
    /**
     * placeholder? : string
     *
     * Description : placeholder of ATextArea
     */
    placeholder?: string;
    /**
     * rows? : number
     *
     * Description : rows of ATextArea
     */
    rows?: number;
    /**
     * tabIndex? : number
     *
     * Description : tabIndex of ATextArea
     */
    tabIndex?: number;
    /**
     * textAreaProps? : React.TextareaHTMLAttributes<HTMLTextAreaElement>
     *
     * Description : textAreaProps of ATextArea
     */
    textAreaProps?: React.TextareaHTMLAttributes<HTMLTextAreaElement>;
    /**
     * textAreaRef? : React.RefObject<HTMLTextAreaElement>
     *
     * Description : textAreaRef of ATextArea
     */
    textAreaRef?: React.RefObject<HTMLTextAreaElement>;
    /**
     * type? : TTextAreaType = 'Primary'
     *
     * Description : type of ATextArea
     */
    type?: TTextAreaTypes;
    /**
     * useValue? : TUseValues<string>
     *
     * Description : useValue of ATextArea
     */
    useValue?: TUseValues<string>;
}
/**
 * AComponent : ATextArea
 *
 * Description : ATextArea is a textarea component. it has AWrap and ABase inside, so be careful with the styles. I recommend checking out the element hierarchy first.
 *
 * Basic Usage :
 *
 *     const [value, setValue] = useState('');
 *
 *     if (case 1)
 *       <ATextArea useValue={[value, setValue]}/>
 */
export declare const ATextArea: (props: IATextAreaProps) => React.ReactNode;
