import type { ComputedRef, PropType, Ref } from 'vue';
import type { MakeSlots } from '../../utils';
export type FormControlSlot = {
    isDisabled: ComputedRef<boolean>;
    isReadonly: ComputedRef<boolean>;
    isPristine: Ref<boolean | null>;
    isValid: ComputedRef<boolean | null>;
    isValidating: Ref<boolean>;
    reset: () => void;
    resetValidation: () => void;
    validate: () => void;
};
export type FormControlSlots = MakeSlots<{
    prepend: [FormControlSlot];
    label: [FormControlSlot];
    default: [FormControlSlot & {
        props: Record<string, unknown>;
    }];
    append: [FormControlSlot];
    details: [FormControlSlot];
}>;
export declare function filterFormControlSlots(slots: Record<string, unknown>): [yes: Partial<Pick<Record<string, unknown>, string>>, no: Omit<Record<string, unknown>, string>];
export declare const FormControlEmits: {
    'click:prepend': (_event: MouseEvent) => boolean;
    'click:label': (_event: MouseEvent) => boolean;
    'click:append': (_event: MouseEvent) => boolean;
    'update:modelValue': (_modelValue: any) => boolean;
};
export declare const FormControlSlots: string[];
export declare const FormControl: {
    new (...args: any[]): {
        $: import("vue").ComponentInternalInstance;
        $data: {};
        $props: Partial<{
            error: boolean;
            disabled: boolean;
            size: import("../../composables/size").Size | undefined;
            density: "high" | "low" | "medium" | "ultra-low" | "ultra-high" | undefined;
            inline: boolean;
            direction: "horizontal" | "vertical";
            readonly: boolean;
            errorMessages: string | string[];
            maxErrors: string | number;
            rules: import("../../composables/validation").ValidationRule[];
            focused: boolean;
            persistentHint: boolean;
            messages: string | unknown[];
        }> & Omit<Readonly<import("vue").ExtractPropTypes<{
            disabled: BooleanConstructor;
            error: BooleanConstructor;
            errorMessages: {
                type: PropType<string | string[]>;
                default: () => never[];
            };
            maxErrors: {
                type: (StringConstructor | NumberConstructor)[];
                default: number;
            };
            readonly: BooleanConstructor;
            rules: {
                type: PropType<import("../../composables/validation").ValidationRule[]>;
                default: () => never[];
            };
            modelValue: null;
            density: {
                type: PropType<"high" | "low" | "medium" | "ultra-low" | "ultra-high" | undefined>;
                default: string;
                validator: (v: any) => boolean;
            };
            size: {
                type: PropType<import("../../composables/size").Size | undefined>;
                default: string;
            };
            height: (StringConstructor | NumberConstructor)[];
            maxHeight: (StringConstructor | NumberConstructor)[];
            maxWidth: (StringConstructor | NumberConstructor)[];
            minHeight: (StringConstructor | NumberConstructor)[];
            minWidth: (StringConstructor | NumberConstructor)[];
            width: (StringConstructor | NumberConstructor)[];
            /**
             * @zh 后置图标
             */
            appendIcon: (StringConstructor | ObjectConstructor)[];
            /**
             * @zh 布局方向
             */
            direction: {
                type: PropType<"horizontal" | "vertical">;
                default: string;
                validator: (v: any) => boolean;
            };
            /**
             * @zh 聚焦的
             */
            focused: BooleanConstructor;
            /**
             * @zh 隐藏详情
             */
            hideDetails: PropType<boolean | "auto">;
            /**
             * @zh 存在提示
             */
            hint: StringConstructor;
            /**
             * @zh 内联
             */
            inline: BooleanConstructor;
            /**
             * @zh 标签文本
             */
            label: (StringConstructor | BooleanConstructor)[];
            /**
             * @zh 标签ID
             */
            labelId: StringConstructor;
            /**
             * @zh 标签宽度
             */
            labelWidth: (StringConstructor | NumberConstructor)[];
            /**
             * @zh 提示消息
             */
            messages: {
                type: (StringConstructor | ArrayConstructor)[];
                default: () => never[];
            };
            /**
             * @zh 名称
             */
            name: StringConstructor;
            /**
             * @zh 后置图标
             */
            prependIcon: StringConstructor;
            /**
             * @zh 持续显示的提示
             */
            persistentHint: BooleanConstructor;
        } & {
            $children: () => import("vue").VNodeChild | ((args_0: FormControlSlot & {
                props: Record<string, unknown>;
            }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>[]) | {
                prepend?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]);
                label?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]);
                default?: import("vue").VNodeChild | ((args_0: FormControlSlot & {
                    props: Record<string, unknown>;
                }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]);
                append?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]);
                details?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]);
            };
            'v-slots': new () => {
                prepend?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                label?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                default?: false | ((args_0: FormControlSlot & {
                    props: Record<string, unknown>;
                }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                append?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                details?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
            };
        }>> & {
            "onUpdate:modelValue"?: ((_modelValue: any) => any) | undefined;
            "onClick:prepend"?: ((_event: MouseEvent) => any) | undefined;
            "onClick:label"?: ((_event: MouseEvent) => any) | undefined;
            "onClick:append"?: ((_event: MouseEvent) => any) | undefined;
        } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "error" | "disabled" | "size" | "density" | "inline" | "direction" | "readonly" | "errorMessages" | "maxErrors" | "rules" | "focused" | "persistentHint" | "messages">;
        $attrs: {
            [x: string]: unknown;
        };
        $refs: {
            [x: string]: unknown;
        };
        $slots: Readonly<{
            [name: string]: import("vue").Slot | undefined;
        }>;
        $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
        $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
        $emit: ((event: "update:modelValue", _modelValue: any) => void) & ((event: "click:prepend", _event: MouseEvent) => void) & ((event: "click:label", _event: MouseEvent) => void) & ((event: "click:append", _event: MouseEvent) => void);
        $el: any;
        $options: import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
            disabled: BooleanConstructor;
            error: BooleanConstructor;
            errorMessages: {
                type: PropType<string | string[]>;
                default: () => never[];
            };
            maxErrors: {
                type: (StringConstructor | NumberConstructor)[];
                default: number;
            };
            readonly: BooleanConstructor;
            rules: {
                type: PropType<import("../../composables/validation").ValidationRule[]>;
                default: () => never[];
            };
            modelValue: null;
            density: {
                type: PropType<"high" | "low" | "medium" | "ultra-low" | "ultra-high" | undefined>;
                default: string;
                validator: (v: any) => boolean;
            };
            size: {
                type: PropType<import("../../composables/size").Size | undefined>;
                default: string;
            };
            height: (StringConstructor | NumberConstructor)[];
            maxHeight: (StringConstructor | NumberConstructor)[];
            maxWidth: (StringConstructor | NumberConstructor)[];
            minHeight: (StringConstructor | NumberConstructor)[];
            minWidth: (StringConstructor | NumberConstructor)[];
            width: (StringConstructor | NumberConstructor)[];
            /**
             * @zh 后置图标
             */
            appendIcon: (StringConstructor | ObjectConstructor)[];
            /**
             * @zh 布局方向
             */
            direction: {
                type: PropType<"horizontal" | "vertical">;
                default: string;
                validator: (v: any) => boolean;
            };
            /**
             * @zh 聚焦的
             */
            focused: BooleanConstructor;
            /**
             * @zh 隐藏详情
             */
            hideDetails: PropType<boolean | "auto">;
            /**
             * @zh 存在提示
             */
            hint: StringConstructor;
            /**
             * @zh 内联
             */
            inline: BooleanConstructor;
            /**
             * @zh 标签文本
             */
            label: (StringConstructor | BooleanConstructor)[];
            /**
             * @zh 标签ID
             */
            labelId: StringConstructor;
            /**
             * @zh 标签宽度
             */
            labelWidth: (StringConstructor | NumberConstructor)[];
            /**
             * @zh 提示消息
             */
            messages: {
                type: (StringConstructor | ArrayConstructor)[];
                default: () => never[];
            };
            /**
             * @zh 名称
             */
            name: StringConstructor;
            /**
             * @zh 后置图标
             */
            prependIcon: StringConstructor;
            /**
             * @zh 持续显示的提示
             */
            persistentHint: BooleanConstructor;
        } & {
            $children: () => import("vue").VNodeChild | ((args_0: FormControlSlot & {
                props: Record<string, unknown>;
            }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>[]) | {
                prepend?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]);
                label?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]);
                default?: import("vue").VNodeChild | ((args_0: FormControlSlot & {
                    props: Record<string, unknown>;
                }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]);
                append?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]);
                details?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]);
            };
            'v-slots': new () => {
                prepend?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                label?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                default?: false | ((args_0: FormControlSlot & {
                    props: Record<string, unknown>;
                }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                append?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
                details?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                    [key: string]: any;
                }>[]) | undefined;
            };
        }>> & {
            "onUpdate:modelValue"?: ((_modelValue: any) => any) | undefined;
            "onClick:prepend"?: ((_event: MouseEvent) => any) | undefined;
            "onClick:label"?: ((_event: MouseEvent) => any) | undefined;
            "onClick:append"?: ((_event: MouseEvent) => any) | undefined;
        }, {
            isDisabled: ComputedRef<boolean>;
            isReadonly: ComputedRef<boolean>;
            isPristine: Ref<boolean>;
            isValid: ComputedRef<boolean | null>;
            isValidating: Ref<boolean>;
            reset: () => void;
            resetValidation: () => void;
            validate: () => Promise<string[]>;
        }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
            'click:prepend': (_event: MouseEvent) => boolean;
            'click:label': (_event: MouseEvent) => boolean;
            'click:append': (_event: MouseEvent) => boolean;
            'update:modelValue': (_modelValue: any) => boolean;
        }, string, {
            error: boolean;
            disabled: boolean;
            size: import("../../composables/size").Size | undefined;
            density: "high" | "low" | "medium" | "ultra-low" | "ultra-high" | undefined;
            inline: boolean;
            direction: "horizontal" | "vertical";
            readonly: boolean;
            errorMessages: string | string[];
            maxErrors: string | number;
            rules: import("../../composables/validation").ValidationRule[];
            focused: boolean;
            persistentHint: boolean;
            messages: string | unknown[];
        }, {}, string> & {
            beforeCreate?: ((() => void) | (() => void)[]) | undefined;
            created?: ((() => void) | (() => void)[]) | undefined;
            beforeMount?: ((() => void) | (() => void)[]) | undefined;
            mounted?: ((() => void) | (() => void)[]) | undefined;
            beforeUpdate?: ((() => void) | (() => void)[]) | undefined;
            updated?: ((() => void) | (() => void)[]) | undefined;
            activated?: ((() => void) | (() => void)[]) | undefined;
            deactivated?: ((() => void) | (() => void)[]) | undefined;
            beforeDestroy?: ((() => void) | (() => void)[]) | undefined;
            beforeUnmount?: ((() => void) | (() => void)[]) | undefined;
            destroyed?: ((() => void) | (() => void)[]) | undefined;
            unmounted?: ((() => void) | (() => void)[]) | undefined;
            renderTracked?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
            renderTriggered?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
            errorCaptured?: (((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null, info: string) => boolean | void)[]) | undefined;
        };
        $forceUpdate: () => void;
        $nextTick: typeof import("vue").nextTick;
        $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle;
    } & Readonly<import("vue").ExtractPropTypes<{
        disabled: BooleanConstructor;
        error: BooleanConstructor;
        errorMessages: {
            type: PropType<string | string[]>;
            default: () => never[];
        };
        maxErrors: {
            type: (StringConstructor | NumberConstructor)[];
            default: number;
        };
        readonly: BooleanConstructor;
        rules: {
            type: PropType<import("../../composables/validation").ValidationRule[]>;
            default: () => never[];
        };
        modelValue: null;
        density: {
            type: PropType<"high" | "low" | "medium" | "ultra-low" | "ultra-high" | undefined>;
            default: string;
            validator: (v: any) => boolean;
        };
        size: {
            type: PropType<import("../../composables/size").Size | undefined>;
            default: string;
        };
        height: (StringConstructor | NumberConstructor)[];
        maxHeight: (StringConstructor | NumberConstructor)[];
        maxWidth: (StringConstructor | NumberConstructor)[];
        minHeight: (StringConstructor | NumberConstructor)[];
        minWidth: (StringConstructor | NumberConstructor)[];
        width: (StringConstructor | NumberConstructor)[];
        /**
         * @zh 后置图标
         */
        appendIcon: (StringConstructor | ObjectConstructor)[];
        /**
         * @zh 布局方向
         */
        direction: {
            type: PropType<"horizontal" | "vertical">;
            default: string;
            validator: (v: any) => boolean;
        };
        /**
         * @zh 聚焦的
         */
        focused: BooleanConstructor;
        /**
         * @zh 隐藏详情
         */
        hideDetails: PropType<boolean | "auto">;
        /**
         * @zh 存在提示
         */
        hint: StringConstructor;
        /**
         * @zh 内联
         */
        inline: BooleanConstructor;
        /**
         * @zh 标签文本
         */
        label: (StringConstructor | BooleanConstructor)[];
        /**
         * @zh 标签ID
         */
        labelId: StringConstructor;
        /**
         * @zh 标签宽度
         */
        labelWidth: (StringConstructor | NumberConstructor)[];
        /**
         * @zh 提示消息
         */
        messages: {
            type: (StringConstructor | ArrayConstructor)[];
            default: () => never[];
        };
        /**
         * @zh 名称
         */
        name: StringConstructor;
        /**
         * @zh 后置图标
         */
        prependIcon: StringConstructor;
        /**
         * @zh 持续显示的提示
         */
        persistentHint: BooleanConstructor;
    } & {
        $children: () => import("vue").VNodeChild | ((args_0: FormControlSlot & {
            props: Record<string, unknown>;
        }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>[]) | {
            prepend?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>[]);
            label?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>[]);
            default?: import("vue").VNodeChild | ((args_0: FormControlSlot & {
                props: Record<string, unknown>;
            }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>[]);
            append?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>[]);
            details?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>[]);
        };
        'v-slots': new () => {
            prepend?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>[]) | undefined;
            label?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>[]) | undefined;
            default?: false | ((args_0: FormControlSlot & {
                props: Record<string, unknown>;
            }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>[]) | undefined;
            append?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>[]) | undefined;
            details?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>[]) | undefined;
        };
    }>> & {
        "onUpdate:modelValue"?: ((_modelValue: any) => any) | undefined;
        "onClick:prepend"?: ((_event: MouseEvent) => any) | undefined;
        "onClick:label"?: ((_event: MouseEvent) => any) | undefined;
        "onClick:append"?: ((_event: MouseEvent) => any) | undefined;
    } & import("vue").ShallowUnwrapRef<{
        isDisabled: ComputedRef<boolean>;
        isReadonly: ComputedRef<boolean>;
        isPristine: Ref<boolean>;
        isValid: ComputedRef<boolean | null>;
        isValidating: Ref<boolean>;
        reset: () => void;
        resetValidation: () => void;
        validate: () => Promise<string[]>;
    }> & {} & import("vue").ComponentCustomProperties & {};
    __isFragment?: undefined;
    __isTeleport?: undefined;
    __isSuspense?: undefined;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
    disabled: BooleanConstructor;
    error: BooleanConstructor;
    errorMessages: {
        type: PropType<string | string[]>;
        default: () => never[];
    };
    maxErrors: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    readonly: BooleanConstructor;
    rules: {
        type: PropType<import("../../composables/validation").ValidationRule[]>;
        default: () => never[];
    };
    modelValue: null;
    density: {
        type: PropType<"high" | "low" | "medium" | "ultra-low" | "ultra-high" | undefined>;
        default: string;
        validator: (v: any) => boolean;
    };
    size: {
        type: PropType<import("../../composables/size").Size | undefined>;
        default: string;
    };
    height: (StringConstructor | NumberConstructor)[];
    maxHeight: (StringConstructor | NumberConstructor)[];
    maxWidth: (StringConstructor | NumberConstructor)[];
    minHeight: (StringConstructor | NumberConstructor)[];
    minWidth: (StringConstructor | NumberConstructor)[];
    width: (StringConstructor | NumberConstructor)[];
    /**
     * @zh 后置图标
     */
    appendIcon: (StringConstructor | ObjectConstructor)[];
    /**
     * @zh 布局方向
     */
    direction: {
        type: PropType<"horizontal" | "vertical">;
        default: string;
        validator: (v: any) => boolean;
    };
    /**
     * @zh 聚焦的
     */
    focused: BooleanConstructor;
    /**
     * @zh 隐藏详情
     */
    hideDetails: PropType<boolean | "auto">;
    /**
     * @zh 存在提示
     */
    hint: StringConstructor;
    /**
     * @zh 内联
     */
    inline: BooleanConstructor;
    /**
     * @zh 标签文本
     */
    label: (StringConstructor | BooleanConstructor)[];
    /**
     * @zh 标签ID
     */
    labelId: StringConstructor;
    /**
     * @zh 标签宽度
     */
    labelWidth: (StringConstructor | NumberConstructor)[];
    /**
     * @zh 提示消息
     */
    messages: {
        type: (StringConstructor | ArrayConstructor)[];
        default: () => never[];
    };
    /**
     * @zh 名称
     */
    name: StringConstructor;
    /**
     * @zh 后置图标
     */
    prependIcon: StringConstructor;
    /**
     * @zh 持续显示的提示
     */
    persistentHint: BooleanConstructor;
} & {
    $children: () => import("vue").VNodeChild | ((args_0: FormControlSlot & {
        props: Record<string, unknown>;
    }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>[]) | {
        prepend?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>[]);
        label?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>[]);
        default?: import("vue").VNodeChild | ((args_0: FormControlSlot & {
            props: Record<string, unknown>;
        }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>[]);
        append?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>[]);
        details?: import("vue").VNodeChild | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>[]);
    };
    'v-slots': new () => {
        prepend?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>[]) | undefined;
        label?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>[]) | undefined;
        default?: false | ((args_0: FormControlSlot & {
            props: Record<string, unknown>;
        }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>[]) | undefined;
        append?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>[]) | undefined;
        details?: false | ((args_0: FormControlSlot) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>[]) | undefined;
    };
}>> & {
    "onUpdate:modelValue"?: ((_modelValue: any) => any) | undefined;
    "onClick:prepend"?: ((_event: MouseEvent) => any) | undefined;
    "onClick:label"?: ((_event: MouseEvent) => any) | undefined;
    "onClick:append"?: ((_event: MouseEvent) => any) | undefined;
}, {
    isDisabled: ComputedRef<boolean>;
    isReadonly: ComputedRef<boolean>;
    isPristine: Ref<boolean>;
    isValid: ComputedRef<boolean | null>;
    isValidating: Ref<boolean>;
    reset: () => void;
    resetValidation: () => void;
    validate: () => Promise<string[]>;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    'click:prepend': (_event: MouseEvent) => boolean;
    'click:label': (_event: MouseEvent) => boolean;
    'click:append': (_event: MouseEvent) => boolean;
    'update:modelValue': (_modelValue: any) => boolean;
}, string, {
    error: boolean;
    disabled: boolean;
    size: import("../../composables/size").Size | undefined;
    density: "high" | "low" | "medium" | "ultra-low" | "ultra-high" | undefined;
    inline: boolean;
    direction: "horizontal" | "vertical";
    readonly: boolean;
    errorMessages: string | string[];
    maxErrors: string | number;
    rules: import("../../composables/validation").ValidationRule[];
    focused: boolean;
    persistentHint: boolean;
    messages: string | unknown[];
}, {}, string> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
    $slots: FormControlSlots;
});
export type FormControl = InstanceType<typeof FormControl>;
