type JsonType = T extends typeof String ? "string" : T extends typeof Number ? "number" : T extends typeof Boolean ? "boolean" : T extends typeof Object ? "object" : T extends typeof Array ? "array" : never; export type ConvertToJsonSchema = { type: "object"; properties: { [K in keyof T]: T[K] extends [infer U, null] ? { type: JsonType; nullable: true; } : T[K] extends [infer U, undefined] ? { type: JsonType; } : T[K] extends typeof String | typeof Number | typeof Boolean ? { type: JsonType; } : never; }; required: { [K in keyof T]: T[K] extends [any, undefined] ? never : K; }[keyof T][]; additionalProperties: false; }; export {};