export declare type CliParsedCommandHandler = (parsed: ParsedCliCommand) => Promise | void | number; export declare type CliCommandHandler = (args: TArgs, options: TOptions) => Promise | void | number; export declare type CliValueType = 'boolean' | 'string' | 'number'; export declare type CliValue = boolean | string | number | undefined; import { CliCommandDefinitionParameterPromptQuestion } from './prompt'; export interface CliOptions { globalHandler?: CliParsedCommandHandler; showPrompts?: boolean; } export interface CliBaseCommandDefinition { name: string; description?: string; options?: CliCommandDefinitionOption[]; examples?: string[]; transformOptions?: (options: TCliOptions) => TTransformedOptions; } export interface CliProgramDefinition extends CliBaseCommandDefinition { defaultCommandName?: string; commands?: CliCommandDefinition[]; } export interface CliCommandDefinition extends CliBaseCommandDefinition { arguments?: CliCommandDefinitionArgument[]; handler?: CliCommandHandler; env?: { [name: string]: string; }; transformArguments?: (options: TCliArgs) => TTransformedArgs; } export declare type CliValueValidatorFunction = (value: CliValue) => boolean | string; export interface CliCommandDefinitionParameter { name: string; description?: string; valueType?: CliValueType; default?: CliValue; transform?: (value: CliValue) => CliValue; validate?: CliValueValidatorFunction | RegExp; prompt?: CliCommandDefinitionParameterPromptQuestion; } export interface CliCommandDefinitionArgument extends CliCommandDefinitionParameter { isOptional?: boolean; isVariadic?: boolean; } export interface CliCommandDefinitionOption extends CliCommandDefinitionParameter { syntax?: string; flag?: string; commandHandler?: CliParsedCommandHandler; } export interface CliParsedCommandDefinitionArgument extends CliCommandDefinitionArgument { wasPassed: boolean; value: CliValue | CliValue[]; } export interface CliParsedCommandDefinitionOption extends CliCommandDefinitionOption { wasPassed: boolean; value: CliValue; } export declare type ParserErrorType = 'command' | 'argument' | 'option'; export interface ParserErrors { commandErrors: string[]; argumentErrors: string[]; optionErrors: string[]; allErrors: string[]; hasErrors: boolean; } export interface ParsedCliCommand { program: CliProgramDefinition; command: CliCommandDefinition; optionDefinitions: { [name: string]: CliCommandDefinitionOption; }; parsedOptions: { [name: string]: CliParsedCommandDefinitionOption; }; parsedArguments: { [name: string]: CliParsedCommandDefinitionArgument; }; parsedCommandName: string; arguments: TArgs; options: TOptions; passedArguments: string[]; passedOptions: string[]; errors: ParserErrors; version: string | undefined; env: { [name: string]: string; }; run: () => Promise>; } export interface CliRunResult { parsedCommand: ParsedCliCommand; exitCode: number | undefined; } export interface MriOpts { alias?: { [name: string]: string | string[]; }; unknown?: (flag: string) => any; default?: { [name: string]: string | boolean | number; }; string?: string | string[]; boolean?: string | string[]; lazy?: boolean; }