export declare abstract class Type { required: boolean; description: string | undefined; defaultValue: TsType | undefined; abstract name: string; abstract _parse: (value: any) => void; parse: (value: any) => TsType; optional: () => Type; describe: (str: string) => this; default: (val: TsType) => this; } export declare class ZodNumber extends Type { name: string; _parse: (value: any) => void; } export declare class ZodEnum extends Type { options: T[]; name: string; constructor(options: T[]); _parse: (value: any) => void; } export declare class ZodString extends Type { name: string; _parse: (value: any) => void; } export declare class ZodBoolean extends Type { name: string; _parse: (value: any) => void; } export declare const z: { number: () => ZodNumber; enum: (options: T[]) => ZodEnum; string: () => ZodString; boolean: () => ZodBoolean; }; export type Schema = Record>; export type ExtractType = T extends Type ? U : never; export type ParsedSchema = { [K in keyof T]: ExtractType; }; export type ParsingError = { message: string; path: string[]; }; export declare const parse: (value: any, schema: T) => { success: true; data: ParsedSchema; } | { success: false; errors: ParsingError[]; }; export declare const parseArgs: (schema: T) => ParsedSchema;