import ArgType, { ExtractArgument } from '../args/arg-type'; import Argument from '../args/argument'; export default class Command { readonly name: string; readonly description: string; readonly args: T; readonly validate: CommandValidationFunction; constructor({ name, description, validate, args, }: { name: string; description: string; validate: CommandValidationFunction; args: T; }); } export interface CommandArguments { [key: string]: ArgType[]>; } export type ExtractArgType = A extends ArgType ? ExtractArgument | undefined : never; export type ExtractArgumentFromArgType = { [K in keyof A]: ExtractArgType; }; export type CommandValidationFunction = (value: ExtractArgumentFromArgType) => boolean; //# sourceMappingURL=command.d.ts.map