import type { FieldValues, InternalFieldName, Ref } from './fields'; import type { FieldPath, FieldPathValue } from './path'; import type { BrowserNativeObject, IsAny, LiteralUnion, Merge, OpaqueType } from './utils'; import type { RegisterOptions, ValidateResult } from './validator'; export type Message = string; export type MultipleFieldErrors = { [K in keyof RegisterOptions]?: ValidateResult; } & { [key: string]: ValidateResult; }; export type FieldError = { type: LiteralUnion; root?: FieldError; ref?: Ref; types?: MultipleFieldErrors; message?: Message; }; export type ErrorOption = { message?: Message; type?: LiteralUnion; types?: MultipleFieldErrors; }; export type DeepRequired = T extends BrowserNativeObject | Blob | OpaqueType ? T : { [K in keyof T]-?: NonNullable>; }; export type FieldErrorsImpl = { [K in keyof T]?: T[K] extends BrowserNativeObject | Blob | OpaqueType ? FieldError : K extends 'root' | `root.${string}` ? GlobalError : T[K] extends object ? Merge> : FieldError; }; export type GlobalError = Partial<{ type: string | number; message: Message; }>; export type FieldErrors = Partial>> & { root?: Record & GlobalError; form?: GlobalError; }; /** Resolves the error type stored by {@link FieldErrors} for a field path. */ export type FieldPathError> = TFieldPath extends FieldPath ? TFieldPath extends `${string}.root` ? GlobalError : DeepRequired>> extends infer TFieldValue ? IsAny extends true ? FieldError : NonNullable['value']> : never : never; export type InternalFieldErrors = Partial>; //# sourceMappingURL=errors.d.ts.map