import type { FormInstance, NamePath, Store, WatchOptions } from '../interface'; type ReturnPromise = T extends Promise ? ValueType : never; type GetGeneric = ReturnPromise>; type IsAny = 0 extends 1 & T ? true : false; type IsEqual = (() => T extends X ? 1 : 2) extends () => T extends Y ? 1 : 2 ? true : false; type AnyNamePath = IsAny> extends true ? NamePath : IsAny extends true ? NamePath : IsEqual extends true ? NamePath> : NamePath; export declare function stringify(value: any): string | number; declare function useWatch, TForm extends FormInstance, TDependencies2 extends keyof GetGeneric[TDependencies1], TDependencies3 extends keyof GetGeneric[TDependencies1][TDependencies2], TDependencies4 extends keyof GetGeneric[TDependencies1][TDependencies2][TDependencies3], TDependencies5 extends keyof GetGeneric[TDependencies1][TDependencies2][TDependencies3][TDependencies4]>(dependencies: [TDependencies1, TDependencies2, TDependencies3, TDependencies4, TDependencies5], form?: TForm | WatchOptions): GetGeneric[TDependencies1][TDependencies2][TDependencies3][TDependencies4][TDependencies5]; declare function useWatch, TForm extends FormInstance, TDependencies2 extends keyof GetGeneric[TDependencies1], TDependencies3 extends keyof GetGeneric[TDependencies1][TDependencies2], TDependencies4 extends keyof GetGeneric[TDependencies1][TDependencies2][TDependencies3]>(dependencies: [TDependencies1, TDependencies2, TDependencies3, TDependencies4], form?: TForm | WatchOptions): GetGeneric[TDependencies1][TDependencies2][TDependencies3][TDependencies4]; declare function useWatch, TForm extends FormInstance, TDependencies2 extends keyof GetGeneric[TDependencies1], TDependencies3 extends keyof GetGeneric[TDependencies1][TDependencies2]>(dependencies: [TDependencies1, TDependencies2, TDependencies3], form?: TForm | WatchOptions): GetGeneric[TDependencies1][TDependencies2][TDependencies3]; declare function useWatch, TForm extends FormInstance, TDependencies2 extends keyof GetGeneric[TDependencies1]>(dependencies: [TDependencies1, TDependencies2], form?: TForm | WatchOptions): GetGeneric[TDependencies1][TDependencies2]; declare function useWatch, TForm extends FormInstance>(dependencies: TDependencies | [TDependencies], form?: TForm | WatchOptions): GetGeneric[TDependencies]; declare function useWatch(dependencies: [], form?: TForm | WatchOptions): GetGeneric; declare function useWatch(selector: (values: GetGeneric) => TSelected, form?: TForm | WatchOptions): TSelected; declare function useWatch(selector: (values: ValueType) => TSelected, form?: FormInstance | WatchOptions): TSelected; declare function useWatch(dependencies: AnyNamePath, form?: TForm | WatchOptions): any; declare function useWatch(dependencies: AnyNamePath, form?: TForm | WatchOptions): ValueType; export default useWatch;