export type Nullable = { [P in keyof T]: T[P] | null; }; declare const brand: unique symbol; export type Brand = Base & { readonly [brand]: Name; }; export type Prettify = { [K in keyof T]: T[K]; } & {}; export type MaybePromise = T | Promise; export type Nil = null | undefined; export declare function isNil(v: T | Nil): v is Nil; export type Expand = { [K in keyof T]: T[K]; }; export type IsPlainObject = T extends object ? T extends (...args: any) => any ? false : T extends any[] ? false : true : false; export type ObjectProperties = { [K in keyof T as IsPlainObject> extends true ? K : never]: T[K]; }; type JsonPrimitive = string | number | boolean | null; type Prev = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ...0[]]; type Indices = Exclude; export type JsonPaths = D extends -1 ? never : T extends JsonPrimitive ? never : T extends readonly any[] ? number extends T["length"] ? T extends readonly (infer U)[] ? U extends JsonPrimitive ? [number] : [number] | [number, ...JsonPaths] : never : { [K in Indices]: K extends `${infer N extends number}` ? T[K] extends JsonPrimitive ? [N] : [N] | [N, ...JsonPaths] : never; }[Indices] : T extends object ? NonNullable<{ [K in keyof T]: K extends string | number ? T[K] extends JsonPrimitive | undefined ? [K] : [K] | [K, ...JsonPaths, Prev[D]>] : never; }[keyof T]> : never; export type DeepPartial = T extends readonly [infer A, ...infer Rest] ? readonly [DeepPartial, ...DeepPartial] : T extends readonly (infer U)[] ? readonly DeepPartial[] : T extends Record ? { [K in keyof T]?: DeepPartial; } : T; export type OmitItems = Args extends [...Bind, ...infer Rest] ? Rest : Never; export {};