import type { StandardJSONSchemaV1, StandardSchemaV1 } from '@standard-schema/spec'; /** * A schema that supports both validation (StandardSchemaV1) and JSON schema generation (StandardJSONSchemaV1). * This is the type required for command arguments in Padrone. */ export type PadroneSchema = StandardSchemaV1 & StandardJSONSchemaV1; /** * A schema branded as async. When passed to `.arguments()`, `.configFile()`, or `.env()`, * the command is automatically marked as async, causing `parse()` and `cli()` to return Promises. * * Use the `asyncSchema()` helper to brand an existing schema: * ```ts * import { asyncSchema } from 'padrone'; * const schema = asyncSchema(z.object({ name: z.string() }).check(async (v) => { ... })); * ``` */ export type AsyncPadroneSchema = PadroneSchema & { '~async': true };