1 | import { ICommandInfo } from './command';
|
2 | export interface ITopics {
|
3 | [k: string]: INestedTopic;
|
4 | }
|
5 | export interface INestedTopic {
|
6 | description?: string;
|
7 | subtopics?: ITopics;
|
8 | commands?: {
|
9 | [k: string]: ICommandInfo;
|
10 | };
|
11 | hidden?: boolean;
|
12 | }
|
13 | export interface ITopic extends INestedTopic {
|
14 | name: string;
|
15 | }
|
16 | export 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 | }
|
26 | export declare class Topic extends TopicBase implements ITopic {
|
27 | name: string;
|
28 | description?: string;
|
29 | hidden: boolean;
|
30 | constructor(opts: ITopic);
|
31 | }
|
32 | export declare function topicsToArray(input: ITopic[] | ITopics | undefined): ITopic[];
|
33 | export declare function topicsToArray(input: ITopics | undefined, base: string): ITopic[];
|
34 | export declare function commandsToArray(input: ICommandInfo[] | {
|
35 | [k: string]: ICommandInfo;
|
36 | } | undefined): ICommandInfo[];
|
37 | export declare function commandsToArray(input: {
|
38 | [k: string]: ICommandInfo;
|
39 | } | undefined, base: string): ICommandInfo[];
|
40 | export 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 | }
|