UNPKG

1.67 kBTypeScriptView Raw
1import { ICommandInfo } from './command';
2export interface ITopics {
3 [k: string]: INestedTopic;
4}
5export interface INestedTopic {
6 description?: string;
7 subtopics?: ITopics;
8 commands?: {
9 [k: string]: ICommandInfo;
10 };
11 hidden?: boolean;
12}
13export interface ITopic extends INestedTopic {
14 name: string;
15}
16export declare class TopicBase {
17 subtopics: {
18 [k: string]: Topic;
19 };
20 commands: {
21 [k: string]: ICommandInfo;
22 };
23 findTopic(id: string): Topic | undefined;
24 findCommand(id: string): ICommandInfo | undefined;
25}
26export declare class Topic extends TopicBase implements ITopic {
27 name: string;
28 description?: string;
29 hidden: boolean;
30 constructor(opts: ITopic);
31}
32export declare function topicsToArray(input: ITopic[] | ITopics | undefined): ITopic[];
33export declare function topicsToArray(input: ITopics | undefined, base: string): ITopic[];
34export declare function commandsToArray(input: ICommandInfo[] | {
35 [k: string]: ICommandInfo;
36} | undefined): ICommandInfo[];
37export declare function commandsToArray(input: {
38 [k: string]: ICommandInfo;
39} | undefined, base: string): ICommandInfo[];
40export declare class RootTopic extends TopicBase {
41 subtopics: {
42 [k: string]: Topic;
43 };
44 commands: {
45 [k: string]: ICommandInfo;
46 };
47 allCommands: ICommandInfo[];
48 allTopics: Topic[];
49 findCommand(id: string): ICommandInfo | undefined;
50 addTopics(topics: ITopic[] | {
51 [k: string]: ITopic;
52 } | undefined): void;
53 addCommands(commands: ICommandInfo[] | undefined): void;
54 private findOrCreateTopic(name);
55 private mergeTopics(a, b);
56}