tui-test 0.1.1__py3-none-win_amd64.whl

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.
tui_test/__init__.py ADDED
@@ -0,0 +1,79 @@
1
+ from __future__ import annotations
2
+
3
+ from ._config import VERSION as __version__
4
+ from ._ephemeral import unique_session
5
+ from .client import Locator, TuiTest, close_all, get_recording, sessions
6
+ from .diagnostics import (
7
+ FailureArtifactRef,
8
+ FailureArtifactStatus,
9
+ FailureDetails,
10
+ FailureReason,
11
+ )
12
+ from .errors import (
13
+ ExpectationError,
14
+ InternalError,
15
+ NoSessionError,
16
+ TuiTestError,
17
+ UsageError,
18
+ )
19
+ from .types import (
20
+ AutomaticRecording,
21
+ TraceMode,
22
+ TraceOptions,
23
+ Backend,
24
+ BellEvent,
25
+ Cell,
26
+ Colors,
27
+ Cursor,
28
+ Viewport,
29
+ LocatorDirection,
30
+ MouseButton,
31
+ OpenResult,
32
+ Profile,
33
+ RecordingFormat,
34
+ State,
35
+ TextMatch,
36
+ TextPosition,
37
+ TextSpan,
38
+ TextStyle,
39
+ Timeouts,
40
+ )
41
+
42
+ __all__ = [
43
+ "TuiTest",
44
+ "Locator",
45
+ "sessions",
46
+ "close_all",
47
+ "get_recording",
48
+ "unique_session",
49
+ "TuiTestError",
50
+ "ExpectationError",
51
+ "UsageError",
52
+ "NoSessionError",
53
+ "InternalError",
54
+ "FailureDetails",
55
+ "FailureReason",
56
+ "FailureArtifactRef",
57
+ "FailureArtifactStatus",
58
+ "AutomaticRecording",
59
+ "TraceMode",
60
+ "TraceOptions",
61
+ "BellEvent",
62
+ "Cell",
63
+ "Backend",
64
+ "Colors",
65
+ "Cursor",
66
+ "Viewport",
67
+ "MouseButton",
68
+ "LocatorDirection",
69
+ "OpenResult",
70
+ "Profile",
71
+ "RecordingFormat",
72
+ "State",
73
+ "TextMatch",
74
+ "TextPosition",
75
+ "TextSpan",
76
+ "TextStyle",
77
+ "Timeouts",
78
+ "__version__",
79
+ ]
tui_test/_abi.py ADDED
@@ -0,0 +1,494 @@
1
+ # Generated by cargo run -p tui-test-bindgen. Do not edit.
2
+ import ctypes
3
+
4
+ ABI_VERSION = 5
5
+
6
+
7
+ class TuiString(ctypes.Structure):
8
+ pass
9
+
10
+
11
+ class TuiOptionalU64(ctypes.Structure):
12
+ pass
13
+
14
+
15
+ class TuiOptionalI32(ctypes.Structure):
16
+ pass
17
+
18
+
19
+ class TuiOptionalBool(ctypes.Structure):
20
+ pass
21
+
22
+
23
+ class TuiOptionalF64(ctypes.Structure):
24
+ pass
25
+
26
+
27
+ class TuiPair(ctypes.Structure):
28
+ pass
29
+
30
+
31
+ class TuiQuery(ctypes.Structure):
32
+ pass
33
+
34
+
35
+ class TuiMode(ctypes.Structure):
36
+ pass
37
+
38
+
39
+ class TuiColor(ctypes.Structure):
40
+ pass
41
+
42
+
43
+ class TuiResult(ctypes.Structure):
44
+ pass
45
+
46
+
47
+ class TuiOpenResult(ctypes.Structure):
48
+ pass
49
+
50
+
51
+ class TuiCursor(ctypes.Structure):
52
+ pass
53
+
54
+
55
+ class TuiSize(ctypes.Structure):
56
+ pass
57
+
58
+
59
+ class TuiViewport(ctypes.Structure):
60
+ pass
61
+
62
+
63
+ class TuiBellEvent(ctypes.Structure):
64
+ pass
65
+
66
+
67
+ class TuiState(ctypes.Structure):
68
+ pass
69
+
70
+
71
+ class TuiTerminalColors(ctypes.Structure):
72
+ pass
73
+
74
+
75
+ class TuiCell(ctypes.Structure):
76
+ pass
77
+
78
+
79
+ class TuiPosition(ctypes.Structure):
80
+ pass
81
+
82
+
83
+ class TuiSpan(ctypes.Structure):
84
+ pass
85
+
86
+
87
+ class TuiMatch(ctypes.Structure):
88
+ pass
89
+
90
+
91
+ class TuiTimeouts(ctypes.Structure):
92
+ pass
93
+
94
+
95
+ class TuiOpenOptions(ctypes.Structure):
96
+ pass
97
+
98
+
99
+ class TuiMouseOptions(ctypes.Structure):
100
+ pass
101
+
102
+
103
+ class TuiWaitOptions(ctypes.Structure):
104
+ pass
105
+
106
+
107
+ class TuiRecordingOptions(ctypes.Structure):
108
+ pass
109
+
110
+
111
+ class TuiScreenshotOptions(ctypes.Structure):
112
+ pass
113
+
114
+
115
+ TuiString._fields_ = [
116
+ ("data", ctypes.POINTER(ctypes.c_uint8)),
117
+ ("len", ctypes.c_size_t),
118
+ ]
119
+
120
+
121
+ TuiOptionalU64._fields_ = [
122
+ ("present", ctypes.c_bool),
123
+ ("value", ctypes.c_uint64),
124
+ ]
125
+
126
+
127
+ TuiOptionalI32._fields_ = [
128
+ ("present", ctypes.c_bool),
129
+ ("value", ctypes.c_int32),
130
+ ]
131
+
132
+
133
+ TuiOptionalBool._fields_ = [
134
+ ("present", ctypes.c_bool),
135
+ ("value", ctypes.c_bool),
136
+ ]
137
+
138
+
139
+ TuiOptionalF64._fields_ = [
140
+ ("present", ctypes.c_bool),
141
+ ("value", ctypes.c_double),
142
+ ]
143
+
144
+
145
+ TuiPair._fields_ = [
146
+ ("key", TuiString),
147
+ ("value", TuiString),
148
+ ]
149
+
150
+
151
+ TuiQuery._fields_ = [
152
+ ("json", TuiString),
153
+ ]
154
+
155
+
156
+ TuiMode._fields_ = [
157
+ ("name", TuiString),
158
+ ("enabled", ctypes.c_bool),
159
+ ]
160
+
161
+
162
+ TuiColor._fields_ = [
163
+ ("kind", ctypes.c_uint32),
164
+ ("index", ctypes.c_uint8),
165
+ ("red", ctypes.c_uint8),
166
+ ("green", ctypes.c_uint8),
167
+ ("blue", ctypes.c_uint8),
168
+ ]
169
+
170
+
171
+ TuiOpenResult._fields_ = [
172
+ ("shell_pid", TuiOptionalU64),
173
+ ("session", TuiString),
174
+ ("ready", ctypes.c_bool),
175
+ ("recording", TuiString),
176
+ ]
177
+
178
+
179
+ TuiCursor._fields_ = [
180
+ ("x", ctypes.c_uint16),
181
+ ("y", ctypes.c_uint16),
182
+ ("visible", ctypes.c_bool),
183
+ ("shape", TuiString),
184
+ ("color", TuiString),
185
+ ]
186
+
187
+
188
+ TuiSize._fields_ = [
189
+ ("cols", ctypes.c_uint16),
190
+ ("rows", ctypes.c_uint16),
191
+ ]
192
+
193
+
194
+ TuiViewport._fields_ = [
195
+ ("offset", ctypes.c_size_t),
196
+ ("history", ctypes.c_size_t),
197
+ ]
198
+
199
+
200
+ TuiBellEvent._fields_ = [
201
+ ("sequence", ctypes.c_uint64),
202
+ ("elapsed_ms", ctypes.c_uint64),
203
+ ]
204
+
205
+
206
+ TuiTerminalColors._fields_ = [
207
+ ("foreground", TuiString),
208
+ ("background", TuiString),
209
+ ("cursor", TuiString),
210
+ ("palette", ctypes.POINTER(TuiPair)),
211
+ ("palette_len", ctypes.c_size_t),
212
+ ]
213
+
214
+
215
+ TuiCell._fields_ = [
216
+ ("x", ctypes.c_uint16),
217
+ ("y", ctypes.c_uint16),
218
+ ("character", TuiString),
219
+ ("fg", TuiColor),
220
+ ("bg", TuiColor),
221
+ ("bold", ctypes.c_bool),
222
+ ("dim", ctypes.c_bool),
223
+ ("italic", ctypes.c_bool),
224
+ ("inverse", ctypes.c_bool),
225
+ ("invisible", ctypes.c_bool),
226
+ ("strike", ctypes.c_bool),
227
+ ("blink", ctypes.c_bool),
228
+ ("underline", ctypes.c_bool),
229
+ ("underline_style", TuiString),
230
+ ("underline_color", TuiColor),
231
+ ("link", TuiString),
232
+ ("link_id", TuiString),
233
+ ]
234
+
235
+
236
+ TuiPosition._fields_ = [
237
+ ("row", ctypes.c_uint32),
238
+ ("column", ctypes.c_uint16),
239
+ ]
240
+
241
+
242
+ TuiSpan._fields_ = [
243
+ ("row", ctypes.c_uint32),
244
+ ("start", ctypes.c_uint16),
245
+ ("end", ctypes.c_uint16),
246
+ ]
247
+
248
+
249
+ TuiMatch._fields_ = [
250
+ ("text", TuiString),
251
+ ("start", TuiPosition),
252
+ ("end", TuiPosition),
253
+ ("spans", ctypes.POINTER(TuiSpan)),
254
+ ("spans_len", ctypes.c_size_t),
255
+ ]
256
+
257
+
258
+ TuiTimeouts._fields_ = [
259
+ ("text", TuiOptionalU64),
260
+ ("idle", TuiOptionalU64),
261
+ ("command", TuiOptionalU64),
262
+ ("exit", TuiOptionalU64),
263
+ ("ready", TuiOptionalU64),
264
+ ]
265
+
266
+
267
+ TuiOpenOptions._fields_ = [
268
+ ("backend", TuiString),
269
+ ("shell", TuiString),
270
+ ("cols", TuiOptionalU64),
271
+ ("rows", TuiOptionalU64),
272
+ ("cwd", TuiString),
273
+ ("env", ctypes.POINTER(TuiPair)),
274
+ ("env_len", ctypes.c_size_t),
275
+ ("wait_ready", TuiOptionalBool),
276
+ ("restart", ctypes.c_bool),
277
+ ("scrollback", TuiOptionalU64),
278
+ ("colors", ctypes.POINTER(TuiPair)),
279
+ ("colors_len", ctypes.c_size_t),
280
+ ("timeouts", TuiTimeouts),
281
+ ("recording_mode", TuiString),
282
+ ("recording_directory", TuiString),
283
+ ]
284
+
285
+
286
+ TuiMouseOptions._fields_ = [
287
+ ("button", ctypes.c_uint32),
288
+ ("alt", ctypes.c_bool),
289
+ ("ctrl", ctypes.c_bool),
290
+ ("shift", ctypes.c_bool),
291
+ ]
292
+
293
+
294
+ TuiWaitOptions._fields_ = [
295
+ ("timeout_ms", TuiOptionalU64),
296
+ ("regex", ctypes.c_bool),
297
+ ("not_", ctypes.c_bool),
298
+ ]
299
+
300
+
301
+ TuiRecordingOptions._fields_ = [
302
+ ("path", TuiString),
303
+ ("format", TuiString),
304
+ ("fps", TuiOptionalU64),
305
+ ("speed", TuiOptionalF64),
306
+ ("idle_time_limit", TuiOptionalF64),
307
+ ("zoom", TuiOptionalF64),
308
+ ("background", TuiString),
309
+ ("transparent", ctypes.c_bool),
310
+ ]
311
+
312
+
313
+ TuiScreenshotOptions._fields_ = [
314
+ ("full", ctypes.c_bool),
315
+ ("path", TuiString),
316
+ ("zoom", TuiOptionalF64),
317
+ ("background", TuiString),
318
+ ("transparent", ctypes.c_bool),
319
+ ]
320
+
321
+
322
+ TuiState._fields_ = [
323
+ ("session_shell", TuiString),
324
+ ("cols", ctypes.c_uint16),
325
+ ("rows", ctypes.c_uint16),
326
+ ("cursor", TuiCursor),
327
+ ("title", TuiString),
328
+ ("cwd", TuiString),
329
+ ("last_command", TuiString),
330
+ ("last_exit", TuiOptionalI32),
331
+ ("exit_signal", TuiString),
332
+ ("exited", TuiOptionalI32),
333
+ ("ready", ctypes.c_bool),
334
+ ("bell_count", ctypes.c_uint64),
335
+ ("modes", ctypes.POINTER(TuiMode)),
336
+ ("modes_len", ctypes.c_size_t),
337
+ ("mouse_mode", TuiString),
338
+ ("colors", TuiTerminalColors),
339
+ ("timeouts", TuiTimeouts),
340
+ ("text", TuiString),
341
+ ]
342
+
343
+
344
+ TuiResult._fields_ = [
345
+ ("error_kind", ctypes.c_uint32),
346
+ ("error_message", TuiString),
347
+ ("error_details", TuiString),
348
+ ("error_artifact", TuiString),
349
+ ("text", TuiString),
350
+ ("number", ctypes.c_uint64),
351
+ ("exit_code", TuiOptionalI32),
352
+ ("open", TuiOpenResult),
353
+ ("state", TuiState),
354
+ ("cursor", TuiCursor),
355
+ ("size", TuiSize),
356
+ ("viewport", TuiViewport),
357
+ ("cells", ctypes.POINTER(TuiCell)),
358
+ ("cells_len", ctypes.c_size_t),
359
+ ("matches", ctypes.POINTER(TuiMatch)),
360
+ ("matches_len", ctypes.c_size_t),
361
+ ("bells", ctypes.POINTER(TuiBellEvent)),
362
+ ("bells_len", ctypes.c_size_t),
363
+ ("strings", ctypes.POINTER(TuiString)),
364
+ ("strings_len", ctypes.c_size_t),
365
+ ("snapshot", ctypes.c_uint32),
366
+ ("private_data", ctypes.c_void_p),
367
+ ]
368
+
369
+
370
+ def configure(library):
371
+ library.tui_abi_version.argtypes = []
372
+ library.tui_abi_version.restype = ctypes.c_uint32
373
+ library.tui_get_viewport.argtypes = [TuiString]
374
+ library.tui_get_viewport.restype = ctypes.POINTER(TuiResult)
375
+ library.tui_scroll.argtypes = [TuiString, ctypes.c_int32]
376
+ library.tui_scroll.restype = ctypes.POINTER(TuiResult)
377
+ library.tui_scroll_to_top.argtypes = [TuiString]
378
+ library.tui_scroll_to_top.restype = ctypes.POINTER(TuiResult)
379
+ library.tui_scroll_to_bottom.argtypes = [TuiString]
380
+ library.tui_scroll_to_bottom.restype = ctypes.POINTER(TuiResult)
381
+ library.tui_result_free.argtypes = [ctypes.POINTER(TuiResult)]
382
+ library.tui_result_free.restype = None
383
+ library.tui_open.argtypes = [TuiString, TuiOpenOptions]
384
+ library.tui_open.restype = ctypes.POINTER(TuiResult)
385
+ library.tui_open_ptr.argtypes = [TuiString, ctypes.POINTER(TuiOpenOptions)]
386
+ library.tui_open_ptr.restype = ctypes.POINTER(TuiResult)
387
+ library.tui_run.argtypes = [TuiString, TuiOpenOptions, TuiString, ctypes.POINTER(TuiString), ctypes.c_size_t]
388
+ library.tui_run.restype = ctypes.POINTER(TuiResult)
389
+ library.tui_run_ptr.argtypes = [TuiString, ctypes.POINTER(TuiOpenOptions), TuiString, ctypes.POINTER(TuiString), ctypes.c_size_t]
390
+ library.tui_run_ptr.restype = ctypes.POINTER(TuiResult)
391
+ library.tui_sessions.argtypes = []
392
+ library.tui_sessions.restype = ctypes.POINTER(TuiResult)
393
+ library.tui_close_all.argtypes = []
394
+ library.tui_close_all.restype = ctypes.POINTER(TuiResult)
395
+ library.tui_recording.argtypes = [TuiString]
396
+ library.tui_recording.restype = ctypes.POINTER(TuiResult)
397
+ library.tui_close.argtypes = [TuiString, TuiOptionalBool]
398
+ library.tui_close.restype = ctypes.POINTER(TuiResult)
399
+ library.tui_restart.argtypes = [TuiString, ctypes.c_uint64]
400
+ library.tui_restart.restype = ctypes.POINTER(TuiResult)
401
+ library.tui_state.argtypes = [TuiString]
402
+ library.tui_state.restype = ctypes.POINTER(TuiResult)
403
+ library.tui_get_command.argtypes = [TuiString]
404
+ library.tui_get_command.restype = ctypes.POINTER(TuiResult)
405
+ library.tui_get_output.argtypes = [TuiString]
406
+ library.tui_get_output.restype = ctypes.POINTER(TuiResult)
407
+ library.tui_get_exit_code.argtypes = [TuiString]
408
+ library.tui_get_exit_code.restype = ctypes.POINTER(TuiResult)
409
+ library.tui_get_cwd.argtypes = [TuiString]
410
+ library.tui_get_cwd.restype = ctypes.POINTER(TuiResult)
411
+ library.tui_get_cursor.argtypes = [TuiString]
412
+ library.tui_get_cursor.restype = ctypes.POINTER(TuiResult)
413
+ library.tui_get_size.argtypes = [TuiString]
414
+ library.tui_get_size.restype = ctypes.POINTER(TuiResult)
415
+ library.tui_get_title.argtypes = [TuiString]
416
+ library.tui_get_title.restype = ctypes.POINTER(TuiResult)
417
+ library.tui_get_clipboard.argtypes = [TuiString]
418
+ library.tui_get_clipboard.restype = ctypes.POINTER(TuiResult)
419
+ library.tui_get_bell_count.argtypes = [TuiString]
420
+ library.tui_get_bell_count.restype = ctypes.POINTER(TuiResult)
421
+ library.tui_get_bell_events.argtypes = [TuiString]
422
+ library.tui_get_bell_events.restype = ctypes.POINTER(TuiResult)
423
+ library.tui_stop_recording.argtypes = [TuiString]
424
+ library.tui_stop_recording.restype = ctypes.POINTER(TuiResult)
425
+ library.tui_text.argtypes = [TuiString, ctypes.c_bool]
426
+ library.tui_text.restype = ctypes.POINTER(TuiResult)
427
+ library.tui_packed_screen.argtypes = [TuiString, ctypes.c_bool]
428
+ library.tui_packed_screen.restype = ctypes.POINTER(TuiResult)
429
+ library.tui_cells.argtypes = [TuiString, ctypes.c_uint16, ctypes.c_uint16, ctypes.c_uint16, ctypes.c_uint16]
430
+ library.tui_cells.restype = ctypes.POINTER(TuiResult)
431
+ library.tui_write.argtypes = [TuiString, TuiString]
432
+ library.tui_write.restype = ctypes.POINTER(TuiResult)
433
+ library.tui_type.argtypes = [TuiString, TuiString]
434
+ library.tui_type.restype = ctypes.POINTER(TuiResult)
435
+ library.tui_submit.argtypes = [TuiString, TuiString]
436
+ library.tui_submit.restype = ctypes.POINTER(TuiResult)
437
+ library.tui_signal.argtypes = [TuiString, TuiString]
438
+ library.tui_signal.restype = ctypes.POINTER(TuiResult)
439
+ library.tui_key.argtypes = [TuiString, ctypes.POINTER(TuiString), ctypes.c_size_t, ctypes.c_uint32]
440
+ library.tui_key.restype = ctypes.POINTER(TuiResult)
441
+ library.tui_resize.argtypes = [TuiString, ctypes.c_uint16, ctypes.c_uint16]
442
+ library.tui_resize.restype = ctypes.POINTER(TuiResult)
443
+ library.tui_mouse_click.argtypes = [TuiString, TuiOptionalU64, TuiOptionalU64, TuiString, TuiMouseOptions, ctypes.c_uint8]
444
+ library.tui_mouse_click.restype = ctypes.POINTER(TuiResult)
445
+ library.tui_mouse_move.argtypes = [TuiString, ctypes.c_uint16, ctypes.c_uint16]
446
+ library.tui_mouse_move.restype = ctypes.POINTER(TuiResult)
447
+ library.tui_mouse_down.argtypes = [TuiString, ctypes.c_uint16, ctypes.c_uint16, TuiMouseOptions]
448
+ library.tui_mouse_down.restype = ctypes.POINTER(TuiResult)
449
+ library.tui_mouse_up.argtypes = [TuiString, ctypes.c_uint16, ctypes.c_uint16, TuiMouseOptions]
450
+ library.tui_mouse_up.restype = ctypes.POINTER(TuiResult)
451
+ library.tui_mouse_drag.argtypes = [TuiString, ctypes.c_uint16, ctypes.c_uint16, ctypes.c_uint16, ctypes.c_uint16, TuiMouseOptions]
452
+ library.tui_mouse_drag.restype = ctypes.POINTER(TuiResult)
453
+ library.tui_mouse_scroll.argtypes = [TuiString, TuiString, ctypes.c_uint16]
454
+ library.tui_mouse_scroll.restype = ctypes.POINTER(TuiResult)
455
+ library.tui_wait_title.argtypes = [TuiString, TuiString, TuiWaitOptions]
456
+ library.tui_wait_title.restype = ctypes.POINTER(TuiResult)
457
+ library.tui_expect_title.argtypes = [TuiString, TuiString, TuiWaitOptions]
458
+ library.tui_expect_title.restype = ctypes.POINTER(TuiResult)
459
+ library.tui_wait_clipboard.argtypes = [TuiString, TuiString, TuiWaitOptions]
460
+ library.tui_wait_clipboard.restype = ctypes.POINTER(TuiResult)
461
+ library.tui_wait_idle.argtypes = [TuiString, TuiOptionalU64]
462
+ library.tui_wait_idle.restype = ctypes.POINTER(TuiResult)
463
+ library.tui_wait_command.argtypes = [TuiString, TuiOptionalU64]
464
+ library.tui_wait_command.restype = ctypes.POINTER(TuiResult)
465
+ library.tui_wait_exit.argtypes = [TuiString, TuiOptionalU64]
466
+ library.tui_wait_exit.restype = ctypes.POINTER(TuiResult)
467
+ library.tui_wait_ready.argtypes = [TuiString, TuiOptionalU64]
468
+ library.tui_wait_ready.restype = ctypes.POINTER(TuiResult)
469
+ library.tui_wait_bell.argtypes = [TuiString, TuiOptionalU64]
470
+ library.tui_wait_bell.restype = ctypes.POINTER(TuiResult)
471
+ library.tui_find_locator.argtypes = [TuiString, TuiQuery, ctypes.c_bool]
472
+ library.tui_find_locator.restype = ctypes.POINTER(TuiResult)
473
+ library.tui_wait_locator.argtypes = [TuiString, TuiQuery, TuiWaitOptions]
474
+ library.tui_wait_locator.restype = ctypes.POINTER(TuiResult)
475
+ library.tui_expect_locator.argtypes = [TuiString, TuiQuery, TuiWaitOptions]
476
+ library.tui_expect_locator.restype = ctypes.POINTER(TuiResult)
477
+ library.tui_click_locator.argtypes = [TuiString, TuiQuery, TuiMouseOptions, ctypes.c_uint8, TuiOptionalU64]
478
+ library.tui_click_locator.restype = ctypes.POINTER(TuiResult)
479
+ library.tui_highlight_locator.argtypes = [TuiString, TuiQuery, TuiOptionalU64]
480
+ library.tui_highlight_locator.restype = ctypes.POINTER(TuiResult)
481
+ library.tui_expect_exit_code.argtypes = [TuiString, ctypes.c_int32, TuiOptionalU64]
482
+ library.tui_expect_exit_code.restype = ctypes.POINTER(TuiResult)
483
+ library.tui_expect_output.argtypes = [TuiString, TuiString, ctypes.c_bool]
484
+ library.tui_expect_output.restype = ctypes.POINTER(TuiResult)
485
+ library.tui_expect_bell_count.argtypes = [TuiString, ctypes.c_uint64, TuiOptionalU64]
486
+ library.tui_expect_bell_count.restype = ctypes.POINTER(TuiResult)
487
+ library.tui_snapshot.argtypes = [TuiString, TuiString, ctypes.c_bool, ctypes.c_bool, ctypes.c_bool, TuiString]
488
+ library.tui_snapshot.restype = ctypes.POINTER(TuiResult)
489
+ library.tui_screenshot.argtypes = [TuiString, ctypes.c_bool, TuiString, TuiOptionalF64, TuiString, ctypes.c_bool]
490
+ library.tui_screenshot.restype = ctypes.POINTER(TuiResult)
491
+ library.tui_screenshot_ptr.argtypes = [TuiString, ctypes.POINTER(TuiScreenshotOptions)]
492
+ library.tui_screenshot_ptr.restype = ctypes.POINTER(TuiResult)
493
+ library.tui_start_recording.argtypes = [TuiString, TuiRecordingOptions]
494
+ library.tui_start_recording.restype = ctypes.POINTER(TuiResult)