export declare type Id = { [K in keyof T]: T[K]; } & {}; export declare type WithRequiredProp = Omit & Required>; export declare 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>>): void; /** * Convert a Union type `(A|B)` to an intersection type `(A&B)` */ export declare type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; export declare type NonOptionalKeys = { [K in keyof T]-?: undefined extends T[K] ? never : K; }[keyof T]; export declare type HasRequiredProps = NonOptionalKeys extends never ? False : True; export declare type OptionalIfAllPropsOptional = HasRequiredProps; export declare type NoInfer = [T][T extends any ? 0 : never]; export declare type NonUndefined = T extends undefined ? never : T; export declare type UnwrapPromise = T extends PromiseLike ? V : T; export declare type MaybePromise = T | PromiseLike; export declare type OmitFromUnion = T extends any ? Omit : never; export declare type IsAny = true | false extends (T extends never ? true : false) ? True : False; export declare type CastAny = IsAny;