export type NotUndefined = T extends undefined ? never : T; /** * Remove all possible 'undefined' values recursively from an object */ export type NotSkeletonDeep = T extends Array ? Array>> : T extends (...args: unknown[]) => unknown ? (...args: Parameters) => NotSkeletonDeep>> : T extends object ? { [P in keyof T]: NotUndefined>; } : NotUndefined; /** * Remove all possible 'undefined' types in the first level. */ export type NotSkeleton = T extends Array ? Array> : T extends (...args: unknown[]) => unknown ? (...args: Parameters) => NotUndefined> : T extends object ? { [P in keyof T]: NotUndefined; } : NotUndefined; /** * Runtime no-op that removes all the undefined types recursively */ export declare const castNotSkeletonDeep: (v: T) => NotSkeletonDeep; /** * Runtime no-op that removes all the undefined types in the first level */ export declare const castNotSkeleton: (v: T) => NotSkeleton;