///
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 {};