import z from "zod"; export const OptionTypeSchema = z.enum([ "string", "boolean", "number", "array", ]); export const OptionConfigSchema = z.object({ type: OptionTypeSchema.optional(), short: z.string().optional(), description: z.string().optional(), default: z.unknown().optional(), required: z.boolean().optional(), choices: z.array(z.string()).optional(), }); export const ArgumentConfigSchema = z.object({ name: z.string(), description: z.string().optional(), required: z.boolean(), variadic: z.boolean(), default: z.unknown().optional(), }); export const ParserConfigSchema = z.object({ options: z.record(z.string(), OptionConfigSchema).optional(), arguments: z.array(ArgumentConfigSchema).optional(), allowUnknown: z.boolean().optional(), stopEarly: z.boolean().optional(), }); export const ParsedArgsSchema = z.object({ options: z.record(z.string(), z.unknown()), positionals: z.record(z.string(), z.unknown()), rest: z.array(z.string()), });