interface Option { name: string; short: string; argument: R; description?: string; defaultValue?: V; values?: V[]; } type PickArgs = T extends `-${string}, --${string} <${infer R}>` ? R : never; type PickCmd = T extends `${string} <${infer F}>` ? Command<{ [k in F]: V; }> : Command; export declare class Command { options: Option[]; commands: Map>; name: string; subname: string | undefined; _version: string; _description: string; constructor(name: string); version(v: string): this; command(name: T): PickCmd; description(description: string): this; option`, F = string>(name_all: T, description?: string, defaultValue?: F, values?: readonly F[]): Command]: F; }>; actions: { (options: Args): void | Promise; }[]; action(ac: { (options: Args): void | Promise; }): this; parse(argv: string[]): Promise; private showHelp; } export {};