import { ComputedRef, Ref } from 'vue';
import { MaybeVRef, MaybeVRefs } from '@yanzhen-libs/utils-vue';
import { FormProviderContext, FormProviderContextRefs } from '../constant';
import { NullValue } from '@yanzhen-libs/utils';
import { FormProviderRefInstance, FormProviderSchema, FormProviderSchemaOptions } from '../types';
interface FormProviderGlobalConfig extends Partial<Omit<FormProviderContextRefs, 'use'>> {
    use: ComputedRef<boolean>;
    configRef: ComputedRef<Partial<FormProviderContext>>;
}
export declare function useFormProviderGlobalConfig(key: keyof FormProviderContext): ComputedRef<FormProviderContext[typeof key]>;
export declare function useFormProviderGlobalConfig(): FormProviderGlobalConfig;
export declare function useFormProviderSchema(schemaRef: MaybeVRef<FormProviderSchema | NullValue<null>>, options: MaybeVRefs<Partial<FormProviderSchemaOptions>>, ref?: Ref<FormProviderRefInstance>): {
    bodySchemaConfig: ComputedRef<(import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
        [key: string]: any;
    }> | import('../types').FormProviderBaseBody)[]>;
    handleFormProviderItemProps: (item: any) => {
        vnode: import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
            [key: string]: any;
        }>;
    } | {
        type: string | import('vue').VNode;
        props?: Record<string, any>;
        events?: Record<string, any>;
        use?: boolean;
        draggable?: boolean | Record<string, any>;
        readOnly?: boolean;
        hidden?: boolean;
        visible?: boolean;
        field?: import('../types').FormProviderFieldProps;
        col?: import('../types').FormProviderItemColProps;
        body?: void | import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
            [key: string]: any;
        }> | import('../types').FormProviderBaseBody | (void | import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
            [key: string]: any;
        }> | import('../types').FormProviderBaseBody)[] | (() => void | import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
            [key: string]: any;
        }> | import('../types').FormProviderBaseBody | (void | import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
            [key: string]: any;
        }> | import('../types').FormProviderBaseBody)[]);
        formItemProps: Record<string, any>;
        colProps: Record<string, any>;
        vnode?: undefined;
    };
    formId: symbol;
    schema: MaybeVRef<FormProviderSchema>;
    bodySchema: ComputedRef<(void | import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
        [key: string]: any;
    }> | import('../types').FormProviderBaseBody)[] | (() => void | import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
        [key: string]: any;
    }> | import('../types').FormProviderBaseBody | (void | import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
        [key: string]: any;
    }> | import('../types').FormProviderBaseBody)[])[]>;
    formSchema: ComputedRef<SchemaConfig>;
    rowSchema: ComputedRef<SchemaConfig>;
    form: ComputedRef<any>;
    row: ComputedRef<any>;
    model?: MaybeVRef<import('../types').FormProviderModel>;
    rules?: MaybeVRef<{
        [k: string]: import('ant-design-vue/es/form').RuleObject | import('ant-design-vue/es/form').RuleObject[];
    }>;
    slots?: MaybeVRef<Readonly<{
        [name: string]: import('vue').Slot<any>;
    }>>;
    emit?: MaybeVRef<((event: string, ...args: any[]) => void) | ((event: string, ...args: any[]) => void)>;
    fields?: any;
    useModelValue?: MaybeVRef<boolean>;
    validate?: MaybeVRef<(<T = any>(names?: import('ant-design-vue/es/form/interface').NamePath, option?: import('ant-design-vue/es/form/useForm').validateOptions) => Promise<T>)>;
    initialModel?: MaybeVRef<import('ant-design-vue/es/form/useForm').Props>;
    validateInfos?: MaybeVRef<import('ant-design-vue/es/form/useForm').validateInfos>;
    resetFields?: MaybeVRef<(newValues?: import('ant-design-vue/es/form/useForm').Props) => void>;
    validateField?: MaybeVRef<(name: string, value: any, rules: Record<string, unknown>[], option?: import('ant-design-vue/es/form/useForm').validateOptions) => Promise<import('ant-design-vue/es/form/interface').RuleError[]>>;
    mergeValidateInfo?: MaybeVRef<(items: import('ant-design-vue/es/form/useForm').ValidateInfo | import('ant-design-vue/es/form/useForm').ValidateInfo[]) => import('ant-design-vue/es/form/useForm').ValidateInfo>;
    clearValidate?: MaybeVRef<(names?: import('ant-design-vue/es/form/interface').NamePath) => void>;
    ctx: {
        formId: symbol;
        schema: MaybeVRef<FormProviderSchema>;
        bodySchema: ComputedRef<(void | import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
            [key: string]: any;
        }> | import('../types').FormProviderBaseBody)[] | (() => void | import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
            [key: string]: any;
        }> | import('../types').FormProviderBaseBody | (void | import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
            [key: string]: any;
        }> | import('../types').FormProviderBaseBody)[])[]>;
        formSchema: ComputedRef<SchemaConfig>;
        rowSchema: ComputedRef<SchemaConfig>;
        form: ComputedRef<any>;
        row: ComputedRef<any>;
        model?: MaybeVRef<import('../types').FormProviderModel>;
        rules?: MaybeVRef<{
            [k: string]: import('ant-design-vue/es/form').RuleObject | import('ant-design-vue/es/form').RuleObject[];
        }>;
        slots?: MaybeVRef<Readonly<{
            [name: string]: import('vue').Slot<any>;
        }>>;
        emit?: MaybeVRef<((event: string, ...args: any[]) => void) | ((event: string, ...args: any[]) => void)>;
        fields?: any;
        useModelValue?: MaybeVRef<boolean>;
        validate?: MaybeVRef<(<T = any>(names?: import('ant-design-vue/es/form/interface').NamePath, option?: import('ant-design-vue/es/form/useForm').validateOptions) => Promise<T>)>;
        initialModel?: MaybeVRef<import('ant-design-vue/es/form/useForm').Props>;
        validateInfos?: MaybeVRef<import('ant-design-vue/es/form/useForm').validateInfos>;
        resetFields?: MaybeVRef<(newValues?: import('ant-design-vue/es/form/useForm').Props) => void>;
        validateField?: MaybeVRef<(name: string, value: any, rules: Record<string, unknown>[], option?: import('ant-design-vue/es/form/useForm').validateOptions) => Promise<import('ant-design-vue/es/form/interface').RuleError[]>>;
        mergeValidateInfo?: MaybeVRef<(items: import('ant-design-vue/es/form/useForm').ValidateInfo | import('ant-design-vue/es/form/useForm').ValidateInfo[]) => import('ant-design-vue/es/form/useForm').ValidateInfo>;
        clearValidate?: MaybeVRef<(names?: import('ant-design-vue/es/form/interface').NamePath) => void>;
    };
};
export {};
