import { FormEvent } from 'react'; import { ValidateOption, $FieldSetValue, FormStrategy, FormBuilder, IForm, IValidateResult } from './formulr'; import { Subject } from 'rxjs'; import { UnknownFieldSetModelChildren, UnknownFieldSetBuilderChildren } from './formulr/utils'; export interface IFormAction { type: 'SUBMIT_START' | 'SUBMIT_SUCCESS' | 'SUBMIT_ERROR'; } export interface IFormState { submitting: boolean; submitFailed: boolean; submitSucceeded: boolean; } export declare class ZentForm implements IForm { readonly inner: IForm; state: IFormState; private dispatch; submit$: Subject>; reset$: Subject>; constructor(inner: IForm, state: IFormState, dispatch: (action: IFormAction) => void); get isSubmitting(): boolean; get isSubmitFailed(): boolean; get isSubmitSucceeded(): boolean; get ctx(): import("./formulr").IFormContext; get model(): import("./formulr/models/form").FormModel; submit: (e?: React.SyntheticEvent) => void; validate(option?: ValidateOption): Promise | IValidateResult[]>; isValid(): boolean; isValidating(): boolean; getValue(): $FieldSetValue; getSubmitValue(): any; initialize(value: $FieldSetValue): void; patchValue(value: Partial<$FieldSetValue>): void; resetValue(): void; reset(e: FormEvent): void; clear(): void; submitStart(): void; submitSuccess(): void; submitError(): void; } export declare function useForm(arg: FormStrategy.View | FormBuilder): ZentForm>; export declare function useFormValue(form: ZentForm, defaultValue?: $FieldSetValue): $FieldSetValue; export declare function useFormValid(form: ZentForm): boolean;