import { HTMLAttributes } from 'vue';
import { MazColor } from './types';
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?: MazColor;
    /**
     * Size radius of the component's border
     * @values `'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'base'`
     */
    roundedSize?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'base';
    /**
     * 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;
    /**
     * If the textarea should autogrow based on its content
     * @default true
     */
    autogrow?: 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';
    /**
     * Static label displayed above the textarea. Unlike the floating label, this remains fixed
     * @default undefined
     */
    topLabel?: string;
}
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 onBlur?: ((value: FocusEvent) => any) | undefined;
        readonly onChange?: ((value: Event) => any) | undefined;
        readonly onFocus?: ((value: FocusEvent) => any) | undefined;
        readonly onInput?: ((value?: T | undefined) => 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"> & MazTextareaProps<T> & Partial<{}>> & 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 & {
    __ctx?: Awaited<typeof __VLS_setup>;
};
export default _default;
type __VLS_PrettifyLocal<T> = {
    [K in keyof T]: T[K];
} & {};
