-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathtypes.ts
More file actions
82 lines (74 loc) · 1.39 KB
/
types.ts
File metadata and controls
82 lines (74 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/**
* Supported export formats
*/
export enum ExportFormat {
JSON = 'json',
FULL_JSON = 'fulljson',
}
/**
* Helper port commands
*/
export enum HelperCommand {
DEBUG = 'debug',
FILE = 'file',
TEMPLATE = 'template',
}
/**
* Elm Worker interface
*/
export interface ElmWorker {
init: (options: { flags: { cmd: string } }) => ElmApp
}
/**
* Elm Application interface
*/
export interface ElmApp {
ports: ElmPorts
}
/**
* Elm ports for communication
*/
export interface ElmPorts {
helper: {
subscribe: (callback: (data: [string, string]) => void) => void
}
output: {
subscribe: (callback: (event: [boolean, string]) => void) => void
}
input: {
send: (data: [string, string] | [string, string, string]) => void
}
}
/**
* Project collection structure for multi-course exports
*/
export interface ProjectCollection {
[key: string]: unknown
}
/**
* Preset configuration structure
*/
export interface PresetOptions {
format?: string
responsiveVoice?: boolean
translateWithGoogle?: boolean
debugging?: boolean
removeBase?: boolean
scormOrganization?: string
typicalDuration?: string
scormIframe?: boolean
scormEmbed?: boolean
[key: string]: any
}
export interface Preset {
id: string
name: string
logo: string
format: string
subtitle: string
description: string
options: PresetOptions
}
export interface PresetsConfig {
presets: Preset[]
}