import { NestedValue } from './form'; export declare type Noop = () => void; interface File extends Blob { readonly lastModified: number; readonly name: string; } interface FileList { readonly length: number; item(index: number): File | null; [index: number]: File; } export declare type Primitive = null | undefined | string | number | boolean | symbol | bigint; export declare type BrowserNativeObject = Date | FileList | File; export declare type EmptyObject = { [K in string | number]: never; }; export declare type NonUndefined = T extends undefined ? never : T; export declare type LiteralUnion = T | (U & { _?: never; }); export declare type DeepPartial = T extends BrowserNativeObject | NestedValue ? T : { [K in keyof T]?: DeepPartial; }; export declare type DeepPartialSkipArrayKey = T extends BrowserNativeObject | NestedValue ? T : T extends ReadonlyArray ? { [K in keyof T]: DeepPartialSkipArrayKey; } : { [K in keyof T]?: DeepPartialSkipArrayKey; }; /** * Checks whether the type is any * See {@link https://stackoverflow.com/a/49928360/3406963} * @typeParam T - type which may be any * ``` * IsAny = true * IsAny = false * ``` */ export declare type IsAny = 0 extends 1 & T ? true : false; /** * Checks whether the type is never * @typeParam T - type which may be never * ``` * IsAny = true * IsAny = false * ``` */ export declare type IsNever = [T] extends [never] ? true : false; export declare type DeepMap = IsAny extends true ? any : T extends BrowserNativeObject | NestedValue ? TValue : T extends object ? { [K in keyof T]: DeepMap, TValue>; } : TValue; export declare type IsFlatObject = Extract, any[] | object> extends never ? true : false; export declare type Merge = { [K in keyof A | keyof B]?: K extends keyof A & keyof B ? [A[K], B[K]] extends [object, object] ? Merge : A[K] | B[K] : K extends keyof A ? A[K] : K extends keyof B ? B[K] : never; }; export {}; //# sourceMappingURL=utils.d.ts.map