import { ReactNode } from 'react'; import { FormStore } from './createFormStore'; import { Rule } from './Validator'; import { NamePath, NodeName, ValidateOptions, ValidateStatus } from './type'; import { Store } from './store/createStore'; export declare function isListNodeValue(list?: any[]): any; export declare function isMapNodeValue(map?: object): any; export type FormNodeType = 'list' | 'map' | 'field' | 'form'; export interface FormNode { type: FormNodeType; name?: NodeName; value: any; parentNode: FormNode; childNodes: FormNode[]; data: Record; appendChild: (node: FormNode) => void; removeChild: (node: FormNode) => void; getNamePath: () => NodeName[]; makeNamePathValue: (value: any) => any; getDescendantNode: (name: NamePath) => FormNode | null; getAllDescendantNode: () => FormNode[]; getInitialValue: () => any; getDeepInitialValue: () => any; getDeepValue: () => any; setValue: (value: any) => void; setValueAndValidate: (value: any) => void; setValueAndDeepValidate: (value: any) => void; reset: () => void; dispatch: (value: any) => void; validate: (options?: ValidateOptions) => Promise; errors: string[]; finalRequired: boolean; finalValidateStatus: ValidateStatus; setErrors: (errors: string[]) => void; scrollToField: (options?: ScrollIntoViewOptions) => void; } export declare function getNamePathByCurrentName(name: number | string, parentNode: FormNode): (string | number)[]; export declare function useNode(options: { store?: Store; formStore?: FormStore; type: FormNodeType; name?: NodeName; label?: ReactNode; initialValue?: any; rules?: Rule[]; validateFirst?: boolean; validateStatus?: ValidateStatus; required?: boolean; }): FormNode[];