/// declare type resolvableName = string; export interface config { extends?: string[]; scripts?: { [id: string]: resolvableName | script; }; } interface extended { [k: string]: extended; } export interface resolvedConfig { configPath: string; extends: extended; scripts: { [id: string]: { configuredBy: string[]; script: resolvableName | script; }; }; } export declare type optionDef = { short?: string | false; long?: string | false; description?: string; value?: optionValDef[]; multiple?: boolean; }; export declare type optionValDef = string; export declare type argumentDef = { id: string; description?: string; }; export declare type stringMap = { [k: string]: string; }; export declare type params = { options: { [id: string]: boolean | string | string[] | stringMap | stringMap[]; }; args: { [id: string]: string; }; variadic: string[]; }; export interface script { description?: string; options?: { [k: string]: optionDef; }; requiredArgs?: argumentDef[]; optionalArgs?: argumentDef[]; variadicArgs?: argumentDef; run: (params: params, streams: streams) => void | Promise; } export declare type streams = { in: NodeJS.ReadStream; out: NodeJS.WriteStream; err: NodeJS.WriteStream; }; export {};