import { ApplyRule, FormActionType, FormValidateCallback } from "../types/form"; import { ComputedRef, InjectionKey, Ref } from "vue"; import { Field } from "../types/field"; import { FormSchema } from "../types/form"; export declare const FieldKey: InjectionKey>; export declare const FieldSchemaKey: InjectionKey>; export interface FormContextProps { setFormModel: (key: string, value: any, modal?: Recordable) => void; appendArraySchemaItems: (items: FormSchema[] | FormSchema, path: string, index?: number) => void; removeArraySchemaItems: (path: string, index?: number) => void; getSchemaByPath: (path: string) => { schemaListVal: FormSchema[]; pathIndex: number; }; validate: (validateCallback?: FormValidateCallback, shouldRuleBeApplied?: ApplyRule) => void; formModel: Recordable; formActionType: Partial; getBindValues: ComputedRef; } export interface FieldParentParent { parentModel: Recordable; } declare type ArrayItemModalType = "push" | "unshift" | "splice" | "pop" | "shift" | "remove"; export interface ArrayItemModal { setArrayFormModel: (type: ArrayItemModalType, index?: number, value?: Nullable) => void; getArrayFormModel: (index?: number) => Recordable; } export declare function createFormContext(context: FormContextProps): { state: any; }; export declare function useFormContext(): FormContextProps; export declare function createField(context: Field): { state: any; }; export declare function useField(): string; export declare function createFieldSchema(context: Ref): { state: any; }; export declare function useFieldSchema(): Ref; export declare function createFieldParent(context: FieldParentParent): { state: any; }; export declare function useFieldParent(): FieldParentParent; export declare function createFieldModal(context: ArrayItemModal): { state: any; }; export declare function useFieldModal(): ArrayItemModal; export {};