import type { BaseProps } from '../../BaseProps';
import type { BreakpointCustomizable, TextareaBlurEventDetail, TextareaChangeEventDetail, TextareaInputEventDetail, TextareaResize, TextareaState, TextareaWrap } from '../types';
export type PTextareaProps = BaseProps & {
    /**
     * Provides the browser with a hint to enable text autofill suggestions for the textarea (e.g. `autocomplete='on'`).
     */
    autoComplete?: string;
    /**
     * Reduces the textarea's initial height and padding for use in dense layouts where vertical space is limited.
     * @default false
     */
    compact?: boolean;
    /**
     * Shows a live character counter below the textarea indicating how many characters the user has typed relative to `maxLength`.
     * @default false
     */
    counter?: boolean;
    /**
     * Sets a supplementary description displayed below the label to give users additional guidance about the textarea.
     * @default ''
     */
    description?: string;
    /**
     * Prevents user interaction with the textarea and excludes its value from form submissions.
     * @default false
     */
    disabled?: boolean;
    /**
     * Associates the textarea with a form element by its ID when the textarea is not a direct descendant of that form.
     */
    form?: string;
    /**
     * Hides the visible label while keeping it accessible to screen readers. Supports responsive breakpoint values.
     * @default false
     */
    hideLabel?: BreakpointCustomizable<boolean>;
    /**
     * Sets the visible label text displayed above the textarea to identify its purpose.
     * @default ''
     */
    label?: string;
    /**
     * Sets the maximum number of characters the user is allowed to enter into the textarea.
     */
    maxLength?: number;
    /**
     * Sets the validation feedback message displayed below the textarea when `state` is `success` or `error`.
     * @default ''
     */
    message?: string;
    /**
     * Sets the minimum number of characters required for the textarea's value to pass constraint validation.
     */
    minLength?: number;
    /**
     * Sets the name of the textarea submitted with the form data to identify this field's value on the server.
     */
    name: string;
    /**
     * Emitted when the textarea element loses focus, regardless of whether the value changed.
     */
    onBlur?: (event: CustomEvent<TextareaBlurEventDetail>) => void;
    /**
     * Emitted when the textarea loses focus after its value was changed, equivalent to the native `change` event.
     */
    onChange?: (event: CustomEvent<TextareaChangeEventDetail>) => void;
    /**
     * Emitted on every keystroke or value change as a direct result of user interaction, equivalent to the native `input` event.
     */
    onInput?: (event: CustomEvent<TextareaInputEventDetail>) => void;
    /**
     * Sets placeholder text displayed inside the textarea when it is empty to hint at the expected content format.
     * @default ''
     */
    placeholder?: string;
    /**
     * Makes the textarea read-only so users cannot modify the value, while still including it in form submissions.
     * @default false
     */
    readOnly?: boolean;
    /**
     * Marks the textarea as required so the form cannot be submitted while this field is empty.
     * @default false
     */
    required?: boolean;
    /**
     * Controls whether and in which direction the user can resize the textarea (`horizontal`, `vertical`, `both`, or `none`).
     * @default 'vertical'
     */
    resize?: TextareaResize;
    /**
     * Sets the initial visible height of the textarea in lines of text. Has no effect when the `--p-textarea-field-sizing` CSS variable is set to `content`.
     * @default 7
     */
    rows?: number;
    /**
     * Controls whether the browser's built-in spell-checking and grammar checking is enabled for the textarea content.
     */
    spellCheck?: boolean;
    /**
     * Sets the validation state of the textarea, which controls its visual appearance and feedback message style (`none`, `success`, `error`).
     * @default 'none'
     */
    state?: TextareaState;
    /**
     * Sets the current multi-line text value of the textarea and reflects any changes made by the user.
     * @default ''
     */
    value?: string | null;
    /**
     * Controls how the submitted text wraps in the form data: `soft` wraps only visually, `hard` inserts line breaks at the textarea width.
     * @default 'soft'
     */
    wrap?: TextareaWrap;
};
export declare const PTextarea: import("react").ForwardRefExoticComponent<Omit<import("react").DOMAttributes<{}>, "onChange" | "onInput" | "onToggle"> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "inputMode" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
    /**
     * Provides the browser with a hint to enable text autofill suggestions for the textarea (e.g. `autocomplete='on'`).
     */
    autoComplete?: string;
    /**
     * Reduces the textarea's initial height and padding for use in dense layouts where vertical space is limited.
     * @default false
     */
    compact?: boolean;
    /**
     * Shows a live character counter below the textarea indicating how many characters the user has typed relative to `maxLength`.
     * @default false
     */
    counter?: boolean;
    /**
     * Sets a supplementary description displayed below the label to give users additional guidance about the textarea.
     * @default ''
     */
    description?: string;
    /**
     * Prevents user interaction with the textarea and excludes its value from form submissions.
     * @default false
     */
    disabled?: boolean;
    /**
     * Associates the textarea with a form element by its ID when the textarea is not a direct descendant of that form.
     */
    form?: string;
    /**
     * Hides the visible label while keeping it accessible to screen readers. Supports responsive breakpoint values.
     * @default false
     */
    hideLabel?: BreakpointCustomizable<boolean>;
    /**
     * Sets the visible label text displayed above the textarea to identify its purpose.
     * @default ''
     */
    label?: string;
    /**
     * Sets the maximum number of characters the user is allowed to enter into the textarea.
     */
    maxLength?: number;
    /**
     * Sets the validation feedback message displayed below the textarea when `state` is `success` or `error`.
     * @default ''
     */
    message?: string;
    /**
     * Sets the minimum number of characters required for the textarea's value to pass constraint validation.
     */
    minLength?: number;
    /**
     * Sets the name of the textarea submitted with the form data to identify this field's value on the server.
     */
    name: string;
    /**
     * Emitted when the textarea element loses focus, regardless of whether the value changed.
     */
    onBlur?: (event: CustomEvent<TextareaBlurEventDetail>) => void;
    /**
     * Emitted when the textarea loses focus after its value was changed, equivalent to the native `change` event.
     */
    onChange?: (event: CustomEvent<TextareaChangeEventDetail>) => void;
    /**
     * Emitted on every keystroke or value change as a direct result of user interaction, equivalent to the native `input` event.
     */
    onInput?: (event: CustomEvent<TextareaInputEventDetail>) => void;
    /**
     * Sets placeholder text displayed inside the textarea when it is empty to hint at the expected content format.
     * @default ''
     */
    placeholder?: string;
    /**
     * Makes the textarea read-only so users cannot modify the value, while still including it in form submissions.
     * @default false
     */
    readOnly?: boolean;
    /**
     * Marks the textarea as required so the form cannot be submitted while this field is empty.
     * @default false
     */
    required?: boolean;
    /**
     * Controls whether and in which direction the user can resize the textarea (`horizontal`, `vertical`, `both`, or `none`).
     * @default 'vertical'
     */
    resize?: TextareaResize;
    /**
     * Sets the initial visible height of the textarea in lines of text. Has no effect when the `--p-textarea-field-sizing` CSS variable is set to `content`.
     * @default 7
     */
    rows?: number;
    /**
     * Controls whether the browser's built-in spell-checking and grammar checking is enabled for the textarea content.
     */
    spellCheck?: boolean;
    /**
     * Sets the validation state of the textarea, which controls its visual appearance and feedback message style (`none`, `success`, `error`).
     * @default 'none'
     */
    state?: TextareaState;
    /**
     * Sets the current multi-line text value of the textarea and reflects any changes made by the user.
     * @default ''
     */
    value?: string | null;
    /**
     * Controls how the submitted text wraps in the form data: `soft` wraps only visually, `hard` inserts line breaks at the textarea width.
     * @default 'soft'
     */
    wrap?: TextareaWrap;
} & {
    children?: import("react").ReactNode | undefined;
} & import("react").RefAttributes<HTMLElement>>;
