import 'reflect-metadata'; import { Command, CommandContext } from '../migrated'; export type ICommandArgument = { index: number; name: string; type: any; validators: ICommandArgumentValidator[]; isOptional: boolean | ((data: ICommandArgumentValidtatorParams) => boolean); question: (data: ICommandArgumentQuestionParams) => Promise; askAgain: boolean; }; export type ICommandArgumentName = string; export type ICommandArgumentValidator = (params: ICommandArgumentValidtatorParams) => any | Promise; export type ICommandArgumentValidtatorParams = { value: string; args: Record; context: CommandContext; command: Command; arg: ICommandArgument; validateArgs: Record; }; export type ICommandArgumentQuestionParams = ICommandArgumentValidtatorParams & { error?: any; }; export declare function CommandArgument(nameOrOptions: ICommandArgumentName | { name: ICommandArgumentName; question?: (data: ICommandArgumentQuestionParams) => Promise; askAgain?: boolean; isOptional?: boolean | ((data: ICommandArgumentValidtatorParams) => boolean); }, ...validators: ICommandArgumentValidator[]): Function;