馃悕馃悕馃悕
1interface Failure {
2 schema: "failure";
3 explanation: string;
4}
5
6interface Nothing {
7 schema: "nothing";
8}
9
10interface PlainText {
11 schema: "text";
12 value: string;
13}
14
15interface Other {
16 schema: "other";
17 description: string;
18}
19
20interface Script {
21 schema: "script";
22 code: string;
23 language: string;
24 source_file: string;
25}
26
27interface Scope {
28 schema: "scope";
29 name: string;
30 content: { [variable_name: string]: Message };
31 parent_id: string;
32 id: string;
33}
34
35interface UiParameter {
36 schema: "ui_parameter";
37 value: any;
38 type: string;
39 cache_id: string;
40}
41
42interface UiButton {
43 schema: "ui_button";
44 text: string;
45 action: string;
46 cache_id: string;
47}
48
49interface ImageReference {
50 schema: "image_reference";
51 source: string;
52 alt: string;
53 width: number;
54 height: number;
55}
56
57interface Command {
58 schema: "command";
59 command: string;
60}
61
62interface PaneRow {
63 schema: "pane_row";
64 leftPercent: number;
65 centerPercent: number;
66 rightPercent: number;
67 left: Displayable | null;
68 center: Displayable | null;
69 right: Displayable | null;
70}
71
72interface PaneColumn {
73 schema: "pane_column";
74 topPercent: number;
75 middlePercent: number;
76 bottomPercent: number;
77 top: Displayable | null;
78 middle: Displayable | null;
79 bottom: Displayable | null;
80}
81
82interface WorkspacePane {
83 x: number;
84 y: number;
85 width: number;
86 height: number;
87 content: Displayable | null;
88}
89
90interface Workspace {
91 schema: "workspace";
92 panes: Displayable[];
93}
94
95type Displayable =
96 | Message
97 | Scope
98 | UiParameter
99 | UiButton
100 | ImageReference
101 | PaneRow
102 | PaneColumn;
103
104type Message =
105 | Nothing
106 | Failure
107 | PlainText
108 | Script
109 | Command
110 | Other;