import { ValidationRule } from '../../../composables/validation/useValidation';
import { Option } from './types';
type __VLS_Props = {
    ariaLabel?: string;
    ariaLabelledby?: string;
    color?: string;
    customRules?: ValidationRule[];
    customSuccessRules?: ValidationRule[];
    customWarningRules?: ValidationRule[];
    density?: 'default' | 'comfortable' | 'compact';
    disabled?: boolean;
    disableErrorHandling?: boolean;
    displayAsterisk?: boolean;
    errorMessages?: string[] | null;
    hideDetails?: boolean | 'auto';
    id?: string;
    isValidateOnBlur?: boolean;
    label?: string;
    modelValue?: (string | number) | (string | number)[] | null;
    multiple?: boolean;
    name?: string;
    options?: Option[];
    readonly?: boolean;
    required?: boolean;
    showSuccessMessages?: boolean;
    successMessages?: string[] | null;
    title?: string;
    warningMessages?: string[] | null;
};
declare const _default: import('vue').DefineComponent<__VLS_Props, {
    validation: {
        errors: import('vue').Ref<string[], string[]>;
        warnings: import('vue').Ref<string[], string[]>;
        successes: import('vue').Ref<string[], string[]>;
        displaySuccesses: import('vue').ComputedRef<string[]>;
        hasError: import('vue').ComputedRef<boolean>;
        hasWarning: import('vue').ComputedRef<boolean>;
        hasSuccess: import('vue').ComputedRef<boolean>;
        validateField: (value: unknown, rules?: ValidationRule[], warningRules?: ValidationRule[], successRules?: ValidationRule[]) => import('../../../composables/validation/useValidation').ValidationResult | Promise<import('../../../composables/validation/useValidation').ValidationResult>;
        validateOnSubmit: () => boolean;
        clearValidation: () => void;
    };
    validateOnSubmit: () => Promise<boolean>;
    checkErrorOnBlur: () => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    change: (...args: any[]) => void;
    "update:modelValue": (...args: any[]) => void;
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
    onChange?: ((...args: any[]) => any) | undefined;
    "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
}>, {
    ariaLabel: string;
    label: string;
    title: string;
    color: string;
    disabled: boolean;
    density: "default" | "comfortable" | "compact";
    readonly: boolean;
    id: string;
    name: string;
    options: Option[];
    modelValue: (string | number) | (string | number)[] | null;
    multiple: boolean;
    required: boolean;
    ariaLabelledby: string;
    showSuccessMessages: boolean;
    disableErrorHandling: boolean;
    errorMessages: string[] | null;
    displayAsterisk: boolean;
    customRules: ValidationRule[];
    customSuccessRules: ValidationRule[];
    customWarningRules: ValidationRule[];
    isValidateOnBlur: boolean;
    successMessages: string[] | null;
    warningMessages: string[] | null;
    hideDetails: boolean | "auto";
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
    messagesRef: import('vue').CreateComponentPublicInstanceWithMixins<{
        style: string | false | import('vue').StyleValue[] | import('vue').CSSProperties | null;
        transition: string | boolean | {
            component: import('vue').Component;
            leaveAbsolute: boolean;
            group: boolean;
        } | (import('vue').TransitionProps & {
            component?: import('vue').Component | undefined;
        }) | null;
        active: boolean;
        messages: string | readonly string[];
    } & {
        class?: any;
        color?: string | undefined;
    } & {
        $children?: {
            message?: ((arg: import('vuetify/lib/components/VMessages/VMessages.mjs').VMessageSlot) => import('vue').VNodeChild) | undefined;
        } | {
            $stable?: boolean | undefined;
        } | {} | import('vue').VNodeChild;
        "v-slots"?: {
            message?: false | ((arg: import('vuetify/lib/components/VMessages/VMessages.mjs').VMessageSlot) => import('vue').VNodeChild) | undefined;
        } | undefined;
    } & {
        "v-slot:message"?: false | ((arg: import('vuetify/lib/components/VMessages/VMessages.mjs').VMessageSlot) => import('vue').VNodeChild) | undefined;
    }, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, Record<string, any>, import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, {
        style: import('vue').StyleValue;
        transition: string | boolean | {
            component: import('vue').Component;
            leaveAbsolute: boolean;
            group: boolean;
        } | (import('vue').TransitionProps & {
            component?: import('vue').Component | undefined;
        }) | null;
        active: boolean;
        messages: string | readonly string[];
    }, true, {}, import('vue').SlotsType<Partial<{
        message: (arg: import('vuetify/lib/components/VMessages/VMessages.mjs').VMessageSlot) => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
            [key: string]: any;
        }>[];
    }>>, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, {
        style: string | false | import('vue').StyleValue[] | import('vue').CSSProperties | null;
        transition: string | boolean | {
            component: import('vue').Component;
            leaveAbsolute: boolean;
            group: boolean;
        } | (import('vue').TransitionProps & {
            component?: import('vue').Component | undefined;
        }) | null;
        active: boolean;
        messages: string | readonly string[];
    } & {
        class?: any;
        color?: string | undefined;
    } & {
        $children?: {
            message?: ((arg: import('vuetify/lib/components/VMessages/VMessages.mjs').VMessageSlot) => import('vue').VNodeChild) | undefined;
        } | {
            $stable?: boolean | undefined;
        } | {} | import('vue').VNodeChild;
        "v-slots"?: {
            message?: false | ((arg: import('vuetify/lib/components/VMessages/VMessages.mjs').VMessageSlot) => import('vue').VNodeChild) | undefined;
        } | undefined;
    } & {
        "v-slot:message"?: false | ((arg: import('vuetify/lib/components/VMessages/VMessages.mjs').VMessageSlot) => import('vue').VNodeChild) | undefined;
    }, {}, {}, {}, {}, {
        style: import('vue').StyleValue;
        transition: string | boolean | {
            component: import('vue').Component;
            leaveAbsolute: boolean;
            group: boolean;
        } | (import('vue').TransitionProps & {
            component?: import('vue').Component | undefined;
        }) | null;
        active: boolean;
        messages: string | readonly string[];
    }> | null;
}, HTMLFieldSetElement>;
export default _default;
