import type { TextareaProps } from 'primevue/textarea';
/**
 * @emits {string} input - Fires when textarea value changes. Emits value
 * @emits {void} enter - Fires at enter key press if autoresize is on
 * @emits {Event} paste - Fires on paste event
 * @emits {void} blur - Fires on blur event
 * @emits {KeyboardEvent} keydown - Fires on keydown event
 * @emits {Event} * - Plus all native textarea events
 */
interface Props extends /* @vue-ignore */ TextareaProps {
    /**
     * Textarea label
     * @type {string}
     * @default ''
     */
    label?: string;
    /**
     * Textarea placeholder
     * @type {string}
     * @default label value
     */
    placeholder?: string;
    /**
     * Native textarea readonly attribute
     * @type {boolean}
     * @default false
     */
    readonly?: boolean;
    /**
     * Native textarea disabled attribute
     * @type {boolean}
     * @default false
     */
    disabled?: boolean;
    /**
     * Marks textarea as required
     * @type {boolean}
     * @default false
     */
    required?: boolean;
    /**
     * Input id name for label association
     * @type {string}
     * @default ''
     */
    name?: string;
    /**
     * Number of rows in textarea
     * @type {number}
     * @default 1
     */
    rows?: number;
    /**
     * Object with props, passed down to wt-label as props
     * @type {Object}
     */
    labelProps?: Record<string, unknown>;
    /**
     * Enables auto-resize. If passed, "Enter" key press emits "enter" event, new line is shift+enter
     * @type {boolean}
     * @default false
     */
    autoresize?: boolean;
    /**
     * Validation rules
     */
    v?: unknown;
    /**
     * Custom validators array
     * @type {Array<{name: string, text: string}>}
     * @default []
     */
    customValidators?: Array<{
        name: string;
        text: string;
    }>;
}
type __VLS_Props = Props;
type __VLS_ModelProps = {
    /**
     * [V-MODEL] Textarea value
     * @model modelValue
     */
    modelValue?: string;
};
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
declare var __VLS_7: {
    label: string;
};
type __VLS_Slots = {} & {
    label?: (props: typeof __VLS_7) => any;
};
declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    "update:modelValue": (value: string) => any;
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
    "onUpdate:modelValue"?: (value: string) => any;
}>, {
    name: string;
    required: boolean;
    label: string;
    disabled: boolean;
    placeholder: string;
    readonly: boolean;
    customValidators: Array<{
        name: string;
        text: string;
    }>;
    v: any;
    labelProps: Record<string, unknown>;
    rows: number;
    autoresize: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
declare const _default: typeof __VLS_export;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
