@defold-typescript/library-types 0.22.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/api-doc/{bridge.bridge.json → bridge.json} +749 -844
  2. package/api-doc/decore.json +22 -22
  3. package/api-doc/druid.json +195 -1790
  4. package/api-doc/event.json +1074 -0
  5. package/api-doc/immutable.json +65 -0
  6. package/api-doc/lang.json +528 -0
  7. package/api-doc/{event.event.json → log.json} +96 -101
  8. package/api-doc/narrator.json +647 -0
  9. package/api-doc/proto.json +995 -0
  10. package/api-doc/saver.saver.json +713 -263
  11. package/api-doc/saver.storage.json +282 -52
  12. package/api-doc/squid.json +846 -0
  13. package/api-doc/tweener.json +277 -0
  14. package/generated/bridge.d.ts +468 -0
  15. package/generated/decore.d.ts +36 -36
  16. package/generated/druid.d.ts +137 -443
  17. package/generated/event.d.ts +318 -0
  18. package/generated/immutable.d.ts +13 -0
  19. package/generated/lang.d.ts +101 -0
  20. package/generated/log.d.ts +36 -0
  21. package/generated/narrator.d.ts +121 -0
  22. package/generated/proto.d.ts +146 -0
  23. package/generated/saver.saver.d.ts +287 -42
  24. package/generated/saver.storage.d.ts +77 -14
  25. package/generated/squid.d.ts +127 -0
  26. package/generated/tweener.d.ts +42 -0
  27. package/library-classification.json +0 -71
  28. package/library-targets.json +0 -66
  29. package/luals-targets.json +114 -0
  30. package/package.json +4 -33
  31. package/script-api-targets.json +15 -0
  32. package/scripts/__snapshots__/parse-luals.test.ts.snap +340 -75
  33. package/scripts/apply-luals-overrides.ts +63 -0
  34. package/scripts/emit-library-dts.ts +84 -3
  35. package/scripts/lower-api-doc.ts +48 -16
  36. package/scripts/luals-fidelity.ts +7 -0
  37. package/scripts/map-luals-types.ts +34 -1
  38. package/scripts/parse-luals.ts +423 -18
  39. package/scripts/sync-luals-types.ts +15 -1
  40. package/scripts/sync-script-api-types.ts +368 -0
  41. package/api-doc/immutable.immutable.json +0 -63
  42. package/api-doc/lang.lang.json +0 -411
  43. package/api-doc/log.log.json +0 -50
  44. package/api-doc/narrator.narrator.json +0 -150
  45. package/api-doc/proto.proto.json +0 -355
  46. package/api-doc/squid.squid.json +0 -660
  47. package/api-doc/tweener.tweener.json +0 -419
  48. package/generated/bridge.bridge.d.ts +0 -533
  49. package/generated/event.event.d.ts +0 -54
  50. package/generated/immutable.immutable.d.ts +0 -13
  51. package/generated/lang.lang.d.ts +0 -33
  52. package/generated/log.log.d.ts +0 -40
  53. package/generated/narrator.narrator.d.ts +0 -66
  54. package/generated/proto.proto.d.ts +0 -36
  55. package/generated/squid.squid.d.ts +0 -106
  56. package/generated/tweener.tweener.d.ts +0 -151
@@ -0,0 +1,318 @@
1
+ /** @noResolution */
2
+ declare module 'event.event' {
3
+ type promise_state = "pending" | "resolved" | "rejected";
4
+ /**
5
+ * Array of next items:
6
+ * [1] callback,
7
+ * [2] callback_context,
8
+ * [3] script_context
9
+ * [4] remaining: nil=infinite, number=fires left, 0=pending delete.
10
+ * [5] subscribed_event: event when callback is event with context.
11
+ */
12
+ interface event_callback_data {
13
+ }
14
+ /**
15
+ * A logger object for event module should match the following interface
16
+ */
17
+ interface event_logger {
18
+ trace: (logger: event_logger, message: string, data: unknown | undefined) => void;
19
+ debug: (logger: event_logger, message: string, data: unknown | undefined) => void;
20
+ info: (logger: event_logger, message: string, data: unknown | undefined) => void;
21
+ warn: (logger: event_logger, message: string, data: unknown | undefined) => void;
22
+ error: (logger: event_logger, message: string, data: unknown | undefined) => void;
23
+ }
24
+ /**
25
+ * The Event module, used to create and manage events. Allows to subscribe to events and trigger them.
26
+ */
27
+ interface event {
28
+ /**
29
+ * Subscribe a callback to the event or other event. The callback will be invoked whenever the event is triggered.
30
+ * The callback_context parameter is optional and will be passed as the first parameter to the callback function.
31
+ * If the callback with context is already subscribed, the warning will be logged.
32
+ * local function callback(self)
33
+ * print("clicked!")
34
+ * end
35
+ * on_click_event:subscribe(callback, self)
36
+ *
37
+ * -- Subscribe an event to another event
38
+ * event_1 = event.create(callback)
39
+ * event_2 = event.create()
40
+ * event_2:subscribe(event_1) -- Now event2 will trigger event1
41
+ */
42
+ subscribe(callback: unknown | event, callback_context?: unknown | undefined): boolean;
43
+ /**
44
+ * Subscribe a callback for a single trigger. After the first trigger the callback is automatically unsubscribed.
45
+ * on_click_event:subscribe_once(function(self) print("one-time click!") end, self)
46
+ */
47
+ subscribe_once(callback: unknown | event, callback_context?: unknown | undefined): boolean;
48
+ /**
49
+ * Remove a previously subscribed callback from the event.
50
+ * The callback_context should be the same as the one used when subscribing the callback.
51
+ * If there is no callback_context provided, all callbacks with the same function will be unsubscribed.
52
+ * on_click_event:unsubscribe(callback, self)
53
+ */
54
+ unsubscribe(callback: unknown | event, callback_context?: unknown | undefined): boolean;
55
+ /**
56
+ * Determine if a specific callback is currently subscribed to the event.
57
+ * The callback_context should be the same as the one used when subscribing the callback.
58
+ * local is_subscribed = on_click_event:is_subscribed(callback, self)
59
+ */
60
+ is_subscribed(callback: unknown | event, callback_context?: unknown | undefined): LuaMultiReturn<[boolean, number | undefined]>;
61
+ /**
62
+ * Trigger the event, causing all subscribed callbacks to be executed.
63
+ * Any parameters passed to trigger will be forwarded to the callbacks.
64
+ * The return value of the last executed callback is returned.
65
+ * The event:trigger(...) can be called as event(...).
66
+ * on_click_event:trigger("arg1", "arg2")
67
+ *
68
+ * -- The event can be triggered as a function
69
+ * on_click_event("arg1", "arg2")
70
+ */
71
+ trigger(...args: unknown[]): unknown;
72
+ /**
73
+ * Check if the event has no subscribed callbacks.
74
+ * local is_empty = on_click_event:is_empty()
75
+ */
76
+ is_empty(): boolean;
77
+ /**
78
+ * Remove all callbacks subscribed to the event, effectively resetting it.
79
+ * on_click_event:clear()
80
+ */
81
+ clear(): void;
82
+ /**
83
+ * Trigger the event. All subscribed callbacks will be called in the order they were subscribed.
84
+ */
85
+ (vararg: unknown): unknown | undefined;
86
+ }
87
+ /**
88
+ * Global events module that allows creation and management of global events that can be triggered from anywhere in your game.
89
+ * This is particularly useful for events that need to be handled by multiple scripts or systems.
90
+ */
91
+ interface events {
92
+ }
93
+ interface promise_cancelled_context {
94
+ is_cancelled: boolean;
95
+ on_cancel: event;
96
+ }
97
+ /**
98
+ * The Promise module, used to create and manage promises.
99
+ * A promise represents a single asynchronous operation that will either resolve with a value or reject with a reason.
100
+ */
101
+ interface promise {
102
+ state: promise_state;
103
+ value: unknown;
104
+ cancellation: promise_cancelled_context;
105
+ /**
106
+ * Attach resolve and reject handlers to the promise.
107
+ * Returns a new promise that will be resolved or rejected based on the handlers' return values.
108
+ * load_data():next(function(data) return process(data) end):next(display):catch(show_error)
109
+ */
110
+ next(on_resolved?: unknown | promise | event | undefined, on_rejected?: unknown | promise | event | undefined, context?: unknown | undefined): promise;
111
+ /**
112
+ * Attach a rejection handler to the promise. Equivalent to next(nil, on_rejected).
113
+ * load_data():catch(function(err) print("Failed:", err) end)
114
+ */
115
+ "catch"(on_rejected: unknown | event, context?: unknown | undefined): promise;
116
+ /**
117
+ * Attach a handler that is called regardless of whether the promise is resolved or rejected.
118
+ * The handler is called with the resolved value or rejection reason.
119
+ * When context is provided, it is passed as the first argument.
120
+ * The handler return value is ignored.
121
+ * load_data():finally(function() hide_loading_spinner() end)
122
+ */
123
+ "finally"(on_finally: unknown | event, context?: unknown | undefined): promise;
124
+ /**
125
+ * Check if the promise is in pending state.
126
+ */
127
+ is_pending(): boolean;
128
+ /**
129
+ * Check if the promise is in resolved state.
130
+ */
131
+ is_resolved(): boolean;
132
+ /**
133
+ * Check if the promise is in rejected state.
134
+ */
135
+ is_rejected(): boolean;
136
+ /**
137
+ * Check if the promise is finished (either resolved or rejected).
138
+ */
139
+ is_finished(): boolean;
140
+ /**
141
+ * Check if the shared cancel_context was cancelled.
142
+ */
143
+ is_cancelled(): boolean;
144
+ /**
145
+ * Resolve the promise.
146
+ * my_promise:resolve(result)
147
+ */
148
+ resolve(value: unknown): void;
149
+ /**
150
+ * Reject the promise.
151
+ * my_promise:reject("failed")
152
+ */
153
+ reject(reason: unknown): void;
154
+ /**
155
+ * Cancel the promise chain. Triggers cleanup and rejects if still pending.
156
+ * my_promise:cancel()
157
+ */
158
+ cancel(): void;
159
+ /**
160
+ * Append a task to this promise's internal sequence without reassigning.
161
+ * The task may return a value or a promise. If `task` is a promise, the pipeline waits for it
162
+ * to finish and adopts its result. The incoming value is not forwarded into `task`
163
+ * (same as `append(function() return task end)`).
164
+ * Returns self for chaining.
165
+ * Almost similar to `promise = promise:next(task)`, but without reassigning the promise.
166
+ * pipeline:append(step1)
167
+ * pipeline:append(step2)
168
+ * pipeline:append(step3)
169
+ * local last = pipeline:tail()
170
+ * print("Is going to check status of", last:is_pending())
171
+ */
172
+ append(task: ((value: unknown) => unknown) | promise): promise;
173
+ /**
174
+ * Get the current tail promise representing all appended work.
175
+ * local last = pipeline:tail()
176
+ * last:next(on_complete)
177
+ */
178
+ tail(): promise;
179
+ /**
180
+ * Reset the internal sequence to an already resolved promise.
181
+ * pipeline:reset()
182
+ * pipeline:append(new_step)
183
+ */
184
+ reset(): promise;
185
+ /**
186
+ * Reject pending child promises when a settled promise is cancelled.
187
+ */
188
+ _reject_cancel_children(): void;
189
+ /**
190
+ * Call the promise to resolve it with value
191
+ */
192
+ (value: unknown): undefined;
193
+ }
194
+ interface queue_event_data {
195
+ data: unknown;
196
+ on_handle: event;
197
+ }
198
+ /**
199
+ * The Queue module, used to create and manage FIFO event queues. Allows to push events to a queue and subscribe handlers to process them.
200
+ * Events are stored in the queue until they are handled by subscribers, following first-in-first-out (FIFO) order.
201
+ */
202
+ interface queue {
203
+ /**
204
+ * Push a new event to the queue. The event will exist until it's handled by a subscriber.
205
+ * If there are already subscribers for this queue instance, they will be called immediately.
206
+ * If multiple subscribers handle the event, all subscribers will still be called. The on_handle callback
207
+ * will be called for each subscriber that handles the event.
208
+ * my_queue:push(save_data)
209
+ * my_queue:push(save_data, function() print("saved!") end)
210
+ */
211
+ push(data: unknown, on_handle?: unknown | event | undefined, context?: unknown | undefined): void;
212
+ /**
213
+ * Subscribe a handler to this queue instance. When an event is pushed to this queue,
214
+ * the handler will be called. If there are already events in the queue, they will be processed immediately.
215
+ * Return a non-nil value from the handler to mark the event as handled and remove it from the queue.
216
+ * local function on_save(self, data)
217
+ * do_save(data)
218
+ * return true
219
+ * end
220
+ * my_queue:subscribe(on_save, self)
221
+ */
222
+ subscribe(handler: unknown | event, context?: unknown | undefined): boolean;
223
+ /**
224
+ * Subscribe a handler until it handles one event. The handler is invoked for each event in the queue until it returns non-nil (handles an event)
225
+ * then it is automatically unsubscribed and will not be invoked again, even if more events remain in the queue.
226
+ * my_queue:subscribe_once(function(self, data) return process(data) end, self)
227
+ */
228
+ subscribe_once(handler: unknown | event, context?: unknown | undefined): boolean;
229
+ /**
230
+ * Unsubscribe a handler from this queue instance.
231
+ * my_queue:unsubscribe(on_save, self)
232
+ */
233
+ unsubscribe(handler: unknown | event, context?: unknown | undefined): boolean;
234
+ /**
235
+ * Check if a handler is subscribed to this queue instance.
236
+ * local ok = my_queue:is_subscribed(on_save, self)
237
+ */
238
+ is_subscribed(handler: unknown | event, context?: unknown | undefined): LuaMultiReturn<[boolean, number | undefined]>;
239
+ /**
240
+ * Process all events in this queue immediately. Subscribers will not be called in this function.
241
+ * Events can be handled and removed in event handler callback. If event is handled, it will be removed from the queue.
242
+ * my_queue:process(function(self, data) return handle(data) end, self)
243
+ */
244
+ process(event_handler: unknown | event, context?: unknown | undefined): void;
245
+ /**
246
+ * Process exactly one queued event with a specific handler (subscribers will NOT be called).
247
+ * If the handler returns non-nil the event will be removed from the queue.
248
+ * local handled = my_queue:process_next(function(data) return handle(data) end)
249
+ */
250
+ process_next(event_handler?: unknown | event | undefined, context?: unknown | undefined): boolean;
251
+ /**
252
+ * Get all pending events in this queue.
253
+ * for _, event_data in ipairs(my_queue:get_events()) do
254
+ * print(event_data.data)
255
+ * end
256
+ */
257
+ get_events(): queue_event_data[];
258
+ /**
259
+ * Clear all pending events in this queue.
260
+ * my_queue:clear_events()
261
+ */
262
+ clear_events(): void;
263
+ /**
264
+ * Clear all subscribers from this queue instance.
265
+ * my_queue:clear_subscribers()
266
+ */
267
+ clear_subscribers(): void;
268
+ /**
269
+ * Check if this queue has no pending events.
270
+ * if my_queue:is_empty() then
271
+ * return
272
+ * end
273
+ */
274
+ is_empty(): boolean;
275
+ /**
276
+ * Check if this queue instance has no subscribed handlers.
277
+ * if my_queue:has_subscribers() then
278
+ * my_queue:push(data)
279
+ * end
280
+ */
281
+ has_subscribers(): boolean;
282
+ /**
283
+ * Remove all events and handlers from this queue instance, effectively resetting it.
284
+ * my_queue:clear()
285
+ */
286
+ clear(): void;
287
+ }
288
+ /**
289
+ * Global queues module that allows creation and management of global FIFO event queues that can be accessed from anywhere in your game.
290
+ * This is particularly useful for events that need to be handled by multiple scripts or systems using a queue-based approach.
291
+ */
292
+ interface queues {
293
+ }
294
+ /**
295
+ * Generate a new event instance. This instance can then be used to subscribe to and trigger events.
296
+ * The callback function will be called when the event is triggered. The callback_context parameter is optional
297
+ * and will be passed as the first parameter to the callback function. Usually, it is used to pass the self instance.
298
+ * local e = event.create()
299
+ * local e = event.create(function(self) print("ok") end, self)
300
+ */
301
+ export function create(this: void, callback?: unknown | event | undefined, callback_context?: unknown | undefined): event;
302
+ /**
303
+ * Check if the table is an event instance.
304
+ * if event.is_event(my_value) then
305
+ * my_value:trigger()
306
+ * end
307
+ */
308
+ export function is_event(this: void, value: unknown): boolean;
309
+ /**
310
+ * Customize the logging mechanism used by Event module. You can use **Defold Log** library or provide a custom logger.
311
+ * By default, the module uses the `pprint` logger for errors.
312
+ */
313
+ export function set_logger(this: void, logger_instance?: event_logger | LuaTable | undefined): void;
314
+ /**
315
+ * Set the mode of the event module.
316
+ */
317
+ export function set_mode(this: void, mode: "pcall"): void;
318
+ }
@@ -0,0 +1,13 @@
1
+ /** @noResolution */
2
+ declare module 'immutable.immutable' {
3
+ interface Immutable {
4
+ }
5
+ /**
6
+ * Checks if a given table `table_to_check` is immutable
7
+ */
8
+ export function is_immutable(this: void, table_to_check: LuaTable | Immutable): boolean;
9
+ /**
10
+ * Makes a given table immutable, including nested tables
11
+ */
12
+ export function make(this: void, original_table: LuaTable | Immutable): Immutable;
13
+ }
@@ -0,0 +1,101 @@
1
+ /** @noResolution */
2
+ declare module 'lang.lang' {
3
+ interface lang_logger {
4
+ trace: (_: unknown, msg: string, data: unknown) => void;
5
+ debug: (_: unknown, msg: string, data: unknown) => void;
6
+ info: (_: unknown, msg: string, data: unknown) => void;
7
+ warn: (_: unknown, msg: string, data: unknown) => void;
8
+ error: (_: unknown, msg: string, data: unknown) => void;
9
+ }
10
+ interface lang_registry {
11
+ }
12
+ interface lang {
13
+ state: lang_state;
14
+ on_lang_changed: unknown;
15
+ }
16
+ interface lang_state {
17
+ lang: string;
18
+ }
19
+ interface lang_data {
20
+ path?: string | LuaTable | undefined;
21
+ id: string;
22
+ loader?: unknown | undefined;
23
+ }
24
+ /**
25
+ * Global callback after language is loaded and translations are ready.
26
+ * Called by `set_lang`, `set_next_lang`, and `load_langs`. Set once at startup to refresh UI.
27
+ */
28
+ export function on_lang_changed(this: void): void;
29
+ /**
30
+ * Call this to initialize lang module
31
+ */
32
+ export function init(this: void, available_langs: lang_data[], lang_on_start?: string | undefined): void;
33
+ /**
34
+ * Load additional locale pack and refresh current language
35
+ */
36
+ export function load_langs(this: void, pack_id: string, langs: lang_data[], on_lang_changed?: unknown | undefined): void;
37
+ /**
38
+ * Set current language
39
+ */
40
+ export function set_lang(this: void, lang_id: string, on_lang_changed?: unknown | undefined): void;
41
+ /**
42
+ * Set next language from lang list and return it's code
43
+ */
44
+ export function set_next_lang(this: void, on_lang_changed?: unknown | undefined): string;
45
+ /**
46
+ * Get next language from lang list and return it's code
47
+ */
48
+ export function get_next_lang(this: void): string;
49
+ /**
50
+ * Get current language
51
+ */
52
+ export function get_lang(this: void): string;
53
+ /**
54
+ * Return list of available languages
55
+ */
56
+ export function get_langs(this: void): string[];
57
+ /**
58
+ * Get translation for text id
59
+ */
60
+ export function txt(this: void, text_id: string): string;
61
+ /**
62
+ * Get translation for text id with params
63
+ */
64
+ export function txp(this: void, text_id: string, ...args: (string | number)[]): string;
65
+ /**
66
+ * Get random translation for text id, split by \n symbol
67
+ */
68
+ export function txr(this: void, text_id: string): string;
69
+ /**
70
+ * Check is translation with text_id exist
71
+ */
72
+ export function is_exist(this: void, text_id: string): boolean;
73
+ /**
74
+ * Set logger for lang module. Pass nil to use empty logger
75
+ */
76
+ export function set_logger(this: void, logger_instance?: lang_logger | LuaTable | undefined): void;
77
+ /**
78
+ * Reset module lang state
79
+ */
80
+ export function reset_state(this: void): void;
81
+ /**
82
+ * Get lang module state
83
+ */
84
+ export function get_state(this: void): lang_state;
85
+ /**
86
+ * Set lang module state
87
+ */
88
+ export function set_state(this: void, state: lang_state): void;
89
+ /**
90
+ * Get default language
91
+ */
92
+ export function get_default_lang(this: void): string;
93
+ /**
94
+ * Get current lang table { key = "value" }
95
+ */
96
+ export function get_lang_table(this: void): LuaTable<string, string>;
97
+ /**
98
+ * Check if language is available
99
+ */
100
+ export function is_lang_available(this: void, lang_id: string): boolean;
101
+ }
@@ -0,0 +1,36 @@
1
+ /** @noResolution */
2
+ declare module 'log.log' {
3
+ type logger = log;
4
+ interface log {
5
+ name: string;
6
+ level: string;
7
+ /**
8
+ * Log message with TRACE level
9
+ */
10
+ trace(message: string, data: unknown): void;
11
+ /**
12
+ * Log message with DEBUG level
13
+ */
14
+ debug(message: string, data: unknown): void;
15
+ /**
16
+ * Log message with INFO level
17
+ */
18
+ info(message: string, data: unknown): void;
19
+ /**
20
+ * Log message with WARN level
21
+ */
22
+ warn(message: string, data: unknown): void;
23
+ /**
24
+ * Log message with ERROR level
25
+ */
26
+ error(message: string, data: unknown): void;
27
+ }
28
+ /**
29
+ * Return the new logger instance
30
+ */
31
+ export function get_logger(this: void, logger_name?: string | undefined, force_logger_level_in_debug?: string | undefined): logger;
32
+ /**
33
+ * Return the basename of the current file
34
+ */
35
+ export function get_default_logger_name(this: void, debuginfo: unknown): string;
36
+ }
@@ -0,0 +1,121 @@
1
+ /** @noResolution */
2
+ declare module 'narrator.narrator' {
3
+ interface Narrator_Book_Version {
4
+ engine: number;
5
+ tree: number;
6
+ }
7
+ interface Narrator_Book {
8
+ version: Narrator_Book_Version;
9
+ inclusions: string[];
10
+ lists: LuaTable;
11
+ constants: LuaTable;
12
+ variables: LuaTable;
13
+ params: LuaTable;
14
+ tree: LuaTable;
15
+ }
16
+ interface Narrator_ParsingParams {
17
+ save: boolean;
18
+ }
19
+ interface Narrator_Paragraph {
20
+ text: string;
21
+ tags?: string[] | undefined;
22
+ }
23
+ interface Narrator_Choice {
24
+ text: string;
25
+ tags?: string[] | undefined;
26
+ }
27
+ interface Narrator_State {
28
+ version: number;
29
+ temp: LuaTable;
30
+ seeds: LuaTable;
31
+ variables: LuaTable;
32
+ params?: LuaTable | undefined;
33
+ visits: LuaTable;
34
+ current_path: LuaTable;
35
+ paragraphs: LuaTable;
36
+ choices: LuaTable;
37
+ output: LuaTable;
38
+ tunnels?: LuaTable | undefined;
39
+ path: LuaTable;
40
+ }
41
+ interface Narrator_Story {
42
+ global_tags: string[];
43
+ constants: LuaTable<string, unknown>;
44
+ variables: LuaTable<string, unknown>;
45
+ migrate: (state: Narrator_State, old_version: number, new_version: number) => Narrator_State;
46
+ /**
47
+ * Start a story
48
+ * Generate the first chunk of paragraphs and choices
49
+ */
50
+ begin(): void;
51
+ /**
52
+ * Does the story have paragraphs to output or not
53
+ */
54
+ can_continue(): boolean;
55
+ /**
56
+ * Pull the current paragraphs from the queue.
57
+ */
58
+ "continue"(steps?: number | undefined): Narrator_Paragraph[] | Narrator_Paragraph;
59
+ /**
60
+ * Does the story have choices to output or not.
61
+ * Also returns false if there are available paragraphs to continue.
62
+ */
63
+ can_choose(): boolean;
64
+ /**
65
+ * Returns an array of available choice titles.
66
+ * Also returns an empty array if there are available paragraphs to continue.
67
+ */
68
+ get_choices(): Narrator_Choice[];
69
+ /**
70
+ * Make a choice to continue the story.
71
+ */
72
+ choose(index: number): void;
73
+ /**
74
+ * Jump to the path
75
+ */
76
+ jump_to(path_string: string): void;
77
+ /**
78
+ * Get the number of visits for the path.
79
+ */
80
+ get_visits(path_string: string): number;
81
+ /**
82
+ * Get tags for the path
83
+ */
84
+ get_tags(path_string?: string | undefined): string[];
85
+ /**
86
+ * Creates a table with the story state that can be saved and loaded later.
87
+ * Use it to save the game.
88
+ */
89
+ save_state(): Narrator_State;
90
+ /**
91
+ * Restore the story state from the saved state.
92
+ * Use it to load the game.
93
+ */
94
+ load_state(state: Narrator_State): void;
95
+ /**
96
+ * Assign an observer function to the variable's changes.
97
+ */
98
+ observe(variable: string, observer: (variable: unknown) => void): void;
99
+ /**
100
+ * Bind a function to external calling from the Ink.
101
+ * The function can returns the value or not.
102
+ */
103
+ bind(func_name: string, handler: (...args: unknown[]) => unknown): void;
104
+ }
105
+ /**
106
+ * Parse a book from an Ink file
107
+ * Use it during development, but prefer already parsed and stored books in production
108
+ * Requires `lpeg` and `io`.
109
+ */
110
+ export function parse_file(this: void, path: string, params?: Narrator_ParsingParams | undefined): Narrator_Book;
111
+ /**
112
+ * Parse a book from the ink content string
113
+ * Use it during development, but prefer already parsed and stored books in production
114
+ * Requires `lpeg`
115
+ */
116
+ export function parse_content(this: void, content: string, inclusions?: string[]): Narrator_Book;
117
+ /**
118
+ * Init a story based on the book
119
+ */
120
+ export function init_story(this: void, book: Narrator_Book): Narrator_Story;
121
+ }