export type Id = { [K in keyof T]: T[K]; } & {}; export type WithRequiredProp = Omit & Required>; export type Override = T2 extends any ? Omit & T2 : never; export declare function assertCast(v: any): asserts v is T; export declare function safeAssign(target: T, ...args: Array>>): T; /** * Convert a Union type `(A|B)` to an intersection type `(A&B)` */ export type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; export type NonOptionalKeys = { [K in keyof T]-?: undefined extends T[K] ? never : K; }[keyof T]; export type HasRequiredProps = NonOptionalKeys extends never ? False : True; export type OptionalIfAllPropsOptional = HasRequiredProps; export type NoInfer = [T][T extends any ? 0 : never]; export type NonUndefined = T extends undefined ? never : T; export type UnwrapPromise = T extends PromiseLike ? V : T; export type MaybePromise = T | PromiseLike; export type OmitFromUnion = T extends any ? Omit : never; export type IsAny = true | false extends (T extends never ? true : false) ? True : False; export type CastAny = IsAny;