import type { AnyZodObject, z } from 'zod'; type And = A extends true ? B extends true ? true : false : false; export type PropsIfHasProps> = And extends true ? { defaultProps?: {}; } : { defaultProps: InferProps; }; export type InferProps> = AnyZodObject extends Schema ? {} extends Props ? Record : Props : {} extends Props ? z.input : // Props and schema specified z.input & Props; export {};