export type FieldsSelection | undefined, DST> = { scalar: SRC; union: Handle__isUnion; object: HandleObject; array: SRC extends Nil ? never : SRC extends Array ? Array> : never; __scalar: Handle__scalar; never: never; }[DST extends Nil ? 'never' : DST extends false | 0 ? 'never' : SRC extends Scalar ? 'scalar' : SRC extends any[] ? 'array' : SRC extends { __isUnion?: any; } ? 'union' : DST extends { __scalar?: any; } ? '__scalar' : DST extends {} ? 'object' : 'never']; type HandleObject, DST> = DST extends boolean ? SRC : SRC extends Nil ? never : Pick<{ [Key in keyof SRC]: Key extends keyof DST ? FieldsSelection> : SRC[Key]; }, Exclude>; type Handle__scalar, DST> = SRC extends Nil ? never : Pick<{ [Key in keyof SRC]: Key extends keyof DST ? FieldsSelection : SRC[Key]; }, { [Key in keyof SRC]: SRC[Key] extends Nil ? never : Key extends FieldsToRemove ? never : SRC[Key] extends Scalar ? Key : Key extends keyof DST ? Key : never; }[keyof SRC]>; type Handle__isUnion, DST> = SRC extends Nil ? never : Omit; type Scalar = string | number | Date | boolean | null | undefined; type Anify = { [P in keyof T]?: any; }; type FieldsToRemove = '__isUnion' | '__scalar' | '__name' | '__args'; type Nil = undefined | null; export {};