/// import { Package } from 'read-pkg'; export interface PJSON { dependencies?: { [name: string]: string; }; anycli: { schema?: number; }; } export declare namespace PJSON { interface Plugin extends PJSON, Package { name: string; version: string; anycli: PJSON['anycli'] & { schema?: number; title?: string; description?: string; hooks?: { [name: string]: (string | string[]); }; commands?: string; plugins?: string[]; devPlugins?: string[]; topics?: { [k: string]: { description?: string; subtopics?: Plugin['anycli']['topics']; hidden?: boolean; }; }; }; } interface CLI extends Plugin { anycli: Plugin['anycli'] & { schema?: number; bin?: string; npmRegistry?: string; scope?: string; dirname?: string; }; } interface User extends PJSON { private?: boolean; anycli: PJSON['anycli'] & { plugins?: (string | PluginTypes.User | PluginTypes.Link)[]; }; } type PluginTypes = PluginTypes.User | PluginTypes.Link; namespace PluginTypes { interface User { type: 'user'; name: string; tag?: string; } interface Link { type: 'link'; name: string; root: string; } } }