import { type HTMLAttributes } from 'vue';
import type { Color } from './types';
export type { Color };
export interface MazTextareaProps<T extends string | undefined | null> {
    /** Style attribut of the component root element */
    style?: HTMLAttributes['style'];
    /** Class attribut of the component root element */
    class?: HTMLAttributes['class'];
    /** @model The value of the textarea */
    modelValue?: T;
    /** The id of the textarea */
    id?: string;
    /** The name of the textarea */
    name?: string;
    /** The label of the textarea */
    label?: string;
    /** The placeholder of the textarea */
    placeholder?: string;
    /** If the textarea is required */
    required?: boolean;
    /** If the textarea is disabled */
    disabled?: boolean;
    /** If the textarea is readonly */
    readonly?: boolean;
    /** If the textarea has an error */
    error?: boolean;
    /** If the textarea has a success */
    success?: boolean;
    /** If the textarea has a warning */
    warning?: boolean;
    /** The hint of the textarea */
    hint?: string;
    /** The color of the textarea */
    color?: Color;
    /**
     * Size radius of the component's border
     * @values `'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full'`
     */
    roundedSize?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
    /**
     * If the textarea has a padding
     * @default true
     */
    padding?: boolean;
    /**
     * If the textarea has a transparent background
     * @default false
     */
    transparent?: boolean;
    /**
     * If the textarea has no border
     * @default false
     */
    border?: boolean;
    /**
     * The alignment of the append slot
     * @values `'start' | 'end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'`
     * @default 'end'
     */
    appendJustify?: 'start' | 'end' | 'center' | 'space-between' | 'space-around' | 'space-evenly';
}
declare const _default: <T extends string | undefined | null>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
        readonly onInput?: ((value?: T | undefined) => any) | undefined;
        readonly onBlur?: ((value: FocusEvent) => any) | undefined;
        readonly onChange?: ((value: Event) => any) | undefined;
        readonly onFocus?: ((value: FocusEvent) => any) | undefined;
        readonly "onUpdate:model-value"?: ((value?: T | undefined) => any) | undefined;
    } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onFocus" | "onBlur" | "onChange" | "onInput" | "onUpdate:model-value"> & Partial<{}> & MazTextareaProps<T>> & import("vue").PublicProps;
    expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
    attrs: any;
    slots: {
        label?(_: {}): any;
        append?(_: {}): any;
    };
    emit: {
        (event: "update:model-value", value?: T): void;
        (event: "input", value?: T): void;
        (event: "focus", value: FocusEvent): void;
        (event: "blur", value: FocusEvent): void;
        (event: "change", value: Event): void;
    };
}>) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}> & {
    __ctx?: Awaited<typeof __VLS_setup>;
};
export default _default;
type __VLS_PrettifyLocal<T> = {
    [K in keyof T]: T[K];
} & {};
