import type { ComputedRef, Ref, InjectionKey } from 'vue';
import type { UnknownObject } from '../types/index';
import type { IFormEmits, IFormExpose, IFormMenuColumns, IFormContext, IArrayFormEmits, IArrayFormProps, IFormProps, GroupFormColumn, IFormItemProps, UseFormProvideConfig, UseFormInjectEmitsCallback, FormColumn } from './index';
export declare const formMenu: IFormMenuColumns;
export declare function useFormMenu(props: Pick<IFormProps, 'menu'>): ComputedRef<IFormMenuColumns>;
export declare function useFormMethods(emit: IFormEmits): {
    formRef: Ref<IFormExpose>;
    formExpose: IFormExpose;
    loading: Ref<boolean>;
    update: (value: UnknownObject) => void;
    submitForm: () => void;
    resetForm: (reset?: boolean) => void;
};
export declare const formContentKey: InjectionKey<IFormContext>;
export declare function useFormProvide(content: UseFormProvideConfig): void;
export declare function useFormInjectEmits(emit: IFormEmits): UseFormInjectEmitsCallback;
export declare function useFormInject(): IFormContext | undefined;
export declare function useArrayForm(props: Pick<IArrayFormProps, 'modelValue' | 'columns' | 'max'>, emit: IArrayFormEmits): {
    showAdd: ComputedRef<boolean>;
    add: (indexes: number[]) => void;
    remove: (index: number, indexes: number[]) => void;
    update: (value: UnknownObject, index: number) => void;
};
export declare function useCreateLabel(props: Pick<IFormItemProps, 'indexes'>): (item: GroupFormColumn | FormColumn) => string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>[] | undefined;
