textmode.export.js 1.9.0-beta.1 → 1.9.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.
@@ -4,8 +4,6 @@ import type { TextmodeLayer } from 'textmode.js';
4
4
  /**
5
5
  * Shared option for exporters that read layer framebuffer data.
6
6
  *
7
- * @category Layer data export
8
- *
9
7
  * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/LayerExportOptions | LayerExportOptions API reference}
10
8
  */
11
9
  export interface LayerExportOptions {
@@ -48,4 +46,4 @@ export declare function getLayerTargetOptions(textmodifier: Textmodifier): Layer
48
46
  export declare function createLayerTargetProvider(textmodifier: Textmodifier): LayerTargetProvider;
49
47
  export declare function getLayerTargetId(textmodifier: Textmodifier, layer: TextmodeLayer): string;
50
48
  export declare function resolveLayerExportTarget(textmodifier: Textmodifier, layer?: TextmodeLayer): ResolvedLayerExportTarget;
51
- export declare function resolveLayerStackExportTargets(textmodifier: Textmodifier): ResolvedLayerStackExportTarget[];
49
+ export declare function resolveLayerStackExportTargets(textmodifier: Textmodifier, selectedLayers?: readonly TextmodeLayer[]): ResolvedLayerStackExportTarget[];
@@ -3,8 +3,6 @@ export type GIFRecordingState = 'idle' | 'recording' | 'encoding' | 'completed'
3
3
  /**
4
4
  * Progress information emitted while deterministic frames are captured and encoded as an animated GIF.
5
5
  *
6
- * @category GIF export
7
- *
8
6
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportProgress | GIFExportProgress API reference}
9
7
  */
10
8
  export type GIFExportProgress = {
@@ -36,8 +34,6 @@ export type GIFExportProgress = {
36
34
  /**
37
35
  * Options for capturing deterministic textmode frames as an animated GIF.
38
36
  *
39
- * @category GIF export
40
- *
41
37
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportOptions | GIFExportOptions API reference}
42
38
  */
43
39
  export type GIFExportOptions = {
@@ -8,8 +8,6 @@ export type ImageFormat = 'png' | 'jpg' | 'webp';
8
8
  /**
9
9
  * Options for exporting the textmode content to image format.
10
10
  *
11
- * @category Canvas capture
12
- *
13
11
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ImageExportOptions | ImageExportOptions API reference}
14
12
  */
15
13
  export type ImageExportOptions = {
@@ -1,5 +1,6 @@
1
1
  import type { Textmodifier } from 'textmode.js';
2
- import type { JSONExportOptions, TextmodeDocumentJSON } from './types';
2
+ import type { JSONExportOptions } from './types';
3
+ import type { TextmodeDocumentJSON } from '@textmode/document';
3
4
  /**
4
5
  * Main JSON exporter for the textmode.js library.
5
6
  * Orchestrates structured selected-layer or layer-stack export and file download.
@@ -1,3 +1,2 @@
1
1
  export { JSONExporter } from './JSONExporter';
2
- export { JSONDataExtractor } from './JSONDataExtractor';
3
- export type { JSONDocumentFormat, JSONDocumentVersion, JSONCellCollection, JSONCellData, JSONCellTransform, JSONColorValue, JSONExportColorMode, JSONExportMetadata, JSONExportOptions, JSONExportTarget, JSONGenerationOptions, JSONLayerGrid, JSONObjectRowCell, JSONObjectRowsCellCollection, JSONRGBAColor, TextmodeAllDocumentJSON, TextmodeDocumentJSON, TextmodeDocumentLayer, TextmodeSelectedDocumentJSON, TextmodeSelectedDocumentLayer, } from './types';
2
+ export type { JSONExportTarget, JSONExportColorMode, JSONExportOptions } from './types';
@@ -1,225 +1,42 @@
1
1
  import type { LayerExportOptions } from '../base';
2
+ import type { TextmodeDocumentCellTransform, TextmodeDocumentRGBAColor } from '@textmode/document';
2
3
  /**
3
- * Target scope for JSON export.
4
- *
5
- * @category JSON document data
4
+ * Layer selection for export; never serialized into the document.
6
5
  *
7
6
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONExportTarget | JSONExportTarget API reference}
8
7
  */
9
8
  export type JSONExportTarget = 'selected' | 'all';
10
9
  /**
11
- * Canonical JSON document format identifier.
12
- *
13
- * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONDocumentFormat | JSONDocumentFormat API reference}
14
- */
15
- export type JSONDocumentFormat = 'textmode.document';
16
- /**
17
- * Canonical JSON document format version.
18
- *
19
- * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONDocumentVersion | JSONDocumentVersion API reference}
20
- */
21
- export type JSONDocumentVersion = '2.0.0';
22
- /**
23
- * Supported JSON color output modes.
24
- *
25
- * @category JSON document data
10
+ * Color representation written by the JSON exporter: hexadecimal strings or
11
+ * RGBA channel objects.
26
12
  *
27
13
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONExportColorMode | JSONExportColorMode API reference}
28
14
  */
29
15
  export type JSONExportColorMode = 'hex' | 'rgba';
30
16
  /**
31
- * RGBA color representation used in JSON exports.
32
- *
33
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONRGBAColor | JSONRGBAColor API reference}
34
- */
35
- export interface JSONRGBAColor {
36
- r: number;
37
- g: number;
38
- b: number;
39
- a: number;
40
- }
41
- /**
42
- * Color value used in the exported JSON document.
43
- *
44
- * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONColorValue | JSONColorValue API reference}
45
- */
46
- export type JSONColorValue = string | JSONRGBAColor;
47
- /**
48
- * Cell transform data for JSON exports.
49
- *
50
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONCellTransform | JSONCellTransform API reference}
51
- */
52
- export interface JSONCellTransform {
53
- invert: boolean;
54
- flipX: boolean;
55
- flipY: boolean;
56
- rotation: number;
57
- }
58
- /**
59
- * Rich per-cell representation for readable JSON exports.
60
- *
61
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONObjectRowCell | JSONObjectRowCell API reference}
62
- */
63
- export interface JSONObjectRowCell {
64
- x: number;
65
- y: number;
66
- character: string;
67
- foreground: JSONColorValue;
68
- background: JSONColorValue;
69
- transform: JSONCellTransform;
70
- }
71
- /**
72
- * Row-based cell encoding.
73
- *
74
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONObjectRowsCellCollection | JSONObjectRowsCellCollection API reference}
75
- */
76
- export interface JSONObjectRowsCellCollection {
77
- encoding: 'object-rows-v1';
78
- rows: JSONObjectRowCell[][];
79
- }
80
- /**
81
- * Supported JSON cell collection variants.
82
- *
83
- * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONCellCollection | JSONCellCollection API reference}
84
- */
85
- export type JSONCellCollection = JSONObjectRowsCellCollection;
86
- /**
87
- * Grid dimensions exported for a layer.
88
- *
89
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONLayerGrid | JSONLayerGrid API reference}
90
- */
91
- export interface JSONLayerGrid {
92
- cols: number;
93
- rows: number;
94
- cellWidth: number;
95
- cellHeight: number;
96
- }
97
- /**
98
- * Optional export metadata.
99
- *
100
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONExportMetadata | JSONExportMetadata API reference}
101
- */
102
- export interface JSONExportMetadata {
103
- createdAt: string;
104
- generator: {
105
- name: 'textmode.export.js';
106
- version: string;
107
- };
108
- }
109
- /**
110
- * Selected-layer entry in a JSON document export.
111
- *
112
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeSelectedDocumentLayer | TextmodeSelectedDocumentLayer API reference}
113
- */
114
- export interface TextmodeSelectedDocumentLayer {
115
- id: string;
116
- cells: JSONCellCollection;
117
- }
118
- /**
119
- * Selected-layer document exported by the JSON exporter.
120
- *
121
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeSelectedDocumentJSON | TextmodeSelectedDocumentJSON API reference}
122
- */
123
- export interface TextmodeSelectedDocumentJSON {
124
- format: JSONDocumentFormat;
125
- formatVersion: JSONDocumentVersion;
126
- target: 'selected';
127
- metadata?: JSONExportMetadata;
128
- canvas: {
129
- width: number;
130
- height: number;
131
- };
132
- grid: JSONLayerGrid;
133
- layer: TextmodeSelectedDocumentLayer;
134
- }
135
- /**
136
- * Single layer entry in an all-layers JSON export.
137
- *
138
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeDocumentLayer | TextmodeDocumentLayer API reference}
139
- */
140
- export interface TextmodeDocumentLayer {
141
- id: string;
142
- visible: boolean;
143
- opacity: number;
144
- blendMode: string;
145
- offsetX: number;
146
- offsetY: number;
147
- rotationZ: number;
148
- grid: JSONLayerGrid;
149
- cells: JSONCellCollection;
150
- }
151
- /**
152
- * Layer stack document exported by the JSON exporter.
153
- *
154
- * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeAllDocumentJSON | TextmodeAllDocumentJSON API reference}
155
- */
156
- export interface TextmodeAllDocumentJSON {
157
- format: JSONDocumentFormat;
158
- formatVersion: JSONDocumentVersion;
159
- target: 'all';
160
- metadata?: JSONExportMetadata;
161
- canvas: {
162
- width: number;
163
- height: number;
164
- };
165
- layers: TextmodeDocumentLayer[];
166
- }
167
- /**
168
- * JSON document exported by the JSON exporter.
169
- *
170
- * @category JSON document data
171
- *
172
- * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/TextmodeDocumentJSON | TextmodeDocumentJSON API reference}
173
- */
174
- export type TextmodeDocumentJSON = TextmodeSelectedDocumentJSON | TextmodeAllDocumentJSON;
175
- /**
176
- * Options for exporting the textmode content to JSON format.
177
- *
178
- * @category JSON document data
17
+ * Options for exporting textmode content to JSON.
179
18
  *
180
19
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONExportOptions | JSONExportOptions API reference}
181
20
  */
182
21
  export type JSONExportOptions = LayerExportOptions & {
183
22
  /**
184
- * Scope of the JSON export.
185
- *
186
- * Use `'selected'` to export one layer, or `'all'` to export the base layer and every user-created layer.
187
- *
188
- * Defaults to `'selected'`.
23
+ * Export one selected layer or the complete layer stack.
24
+ * Defaults to `selected`.
189
25
  */
190
26
  target?: JSONExportTarget;
191
- /**
192
- * The filename to save the JSON file as.
193
- *
194
- * If not provided, a default filename is used.
195
- */
27
+ /** Filename used by the download helper. A default name is used when omitted. */
196
28
  filename?: string;
197
29
  /**
198
- * Pretty-print the generated JSON.
199
- *
200
- * When set to `true`, output uses two-space indentation.
201
- * When set to a number, that value is used as indentation width.
202
- * When `false`, the output is minified.
203
- *
204
- * Defaults to `true`.
30
+ * Pretty-print with two spaces when `true`, use the given indentation width
31
+ * when numeric, or produce compact JSON when `false`. Defaults to `true`.
205
32
  */
206
33
  pretty?: boolean | number;
207
- /**
208
- * Color representation used for foreground and background values.
209
- *
210
- * Defaults to `'hex'`.
211
- */
34
+ /** Foreground and background color representation. Defaults to `hex`. */
212
35
  colorMode?: JSONExportColorMode;
213
- /**
214
- * Whether to include export metadata such as timestamp and generator details.
215
- *
216
- * Defaults to `true`.
217
- */
36
+ /** Include the creation timestamp and generator metadata. Defaults to `true`. */
218
37
  includeMetadata?: boolean;
219
38
  };
220
- /**
221
- * Internal options used by JSON generation (with all defaults applied).
222
- */
39
+ /** Internal JSON generation options after defaults have been applied. */
223
40
  export interface JSONGenerationOptions {
224
41
  target: JSONExportTarget;
225
42
  pretty: boolean | number;
@@ -228,14 +45,12 @@ export interface JSONGenerationOptions {
228
45
  filename?: string;
229
46
  layer?: LayerExportOptions['layer'];
230
47
  }
231
- /**
232
- * Internal extracted cell data used while building the JSON document.
233
- */
48
+ /** Internal framebuffer cell data used while building a document. */
234
49
  export interface JSONCellData {
235
50
  x: number;
236
51
  y: number;
237
52
  character: string;
238
- foreground: JSONRGBAColor;
239
- background: JSONRGBAColor;
240
- transform: JSONCellTransform;
53
+ foreground: TextmodeDocumentRGBAColor;
54
+ background: TextmodeDocumentRGBAColor;
55
+ transform: TextmodeDocumentCellTransform;
241
56
  }
@@ -1,4 +1,4 @@
1
- import type { LayerExportOptions } from '../base';
1
+ import type { LayerExportOptions } from '../base/LayerTarget';
2
2
  /**
3
3
  * RGBA color representation.
4
4
  */
@@ -54,8 +54,6 @@ export interface FramebufferData {
54
54
  /**
55
55
  * Options for exporting the textmode content to SVG format.
56
56
  *
57
- * @category Layer data export
58
- *
59
57
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/SVGExportOptions | SVGExportOptions API reference}
60
58
  */
61
59
  export type SVGExportOptions = LayerExportOptions & {
@@ -2,8 +2,6 @@ import type { LayerExportOptions } from '../base';
2
2
  /**
3
3
  * Options for exporting the textmode content to TXT format.
4
4
  *
5
- * @category Layer data export
6
- *
7
5
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/TXTExportOptions | TXTExportOptions API reference}
8
6
  */
9
7
  export type TXTExportOptions = LayerExportOptions & {
@@ -2,8 +2,6 @@ import type { FrameSequenceDriverLike, FrameSequenceRenderOptions, PrepareExport
2
2
  /**
3
3
  * High-level lifecycle state reported while a video export is captured, encoded, or completed.
4
4
  *
5
- * @category Video export
6
- *
7
5
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoRecordingState | VideoRecordingState API reference}
8
6
  */
9
7
  export type VideoRecordingState = 'idle' | 'recording' | 'encoding' | 'completed' | 'error';
@@ -14,8 +12,6 @@ export type VideoRecordingState = 'idle' | 'recording' | 'encoding' | 'completed
14
12
  * for buffered output. `rendering`, `encoding`, and `draining` remain available for compatibility with older progress
15
13
  * producers.
16
14
  *
17
- * @category Video export
18
- *
19
15
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportPhase | VideoExportPhase API reference}
20
16
  */
21
17
  export type VideoExportPhase = 'probing' | 'rendering' | 'capturing' | 'encoding' | 'draining' | 'writing' | 'finalizing';
@@ -26,8 +22,6 @@ export type VideoCodec = 'vp8' | 'vp9' | 'avc' | (string & {});
26
22
  * Higher levels generally preserve more detail and produce larger, content-dependent files. Mediabunny may use
27
23
  * quantizer-based encoding or a codec-adjusted bitrate, depending on codec and browser support.
28
24
  *
29
- * @category Video export
30
- *
31
25
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoQualityLevel | VideoQualityLevel API reference}
32
26
  */
33
27
  export type VideoQualityLevel = 'very-low' | 'low' | 'medium' | 'high' | 'very-high';
@@ -49,8 +43,6 @@ export type VideoQualityLevel = 'very-low' | 'low' | 'medium' | 'high' | 'very-h
49
43
  * await t.saveVideo({ quality: { bitrate: 8_000_000, bitrateMode: 'constant' } });
50
44
  * ```
51
45
  *
52
- * @category Video export
53
- *
54
46
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoQuality | VideoQuality API reference}
55
47
  */
56
48
  export type VideoQuality = VideoQualityLevel | {
@@ -66,8 +58,6 @@ export type VideoQuality = VideoQualityLevel | {
66
58
  *
67
59
  * This setting does not affect `toVideoBlob()`, which always returns an in-memory `Blob`.
68
60
  *
69
- * @category Video export
70
- *
71
61
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoSaveDestination | VideoSaveDestination API reference}
72
62
  */
73
63
  export type VideoSaveDestination = 'download' | 'file-system';
@@ -77,8 +67,6 @@ export type VideoSaveDestination = 'download' | 'file-system';
77
67
  * MP4 uses AVC/H.264 and requires even coded dimensions. WebM selects VP9 when available and falls back to VP8; it
78
68
  * is the only format that can be requested with transparency.
79
69
  *
80
- * @category Video export
81
- *
82
70
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportFormat | VideoExportFormat API reference}
83
71
  */
84
72
  export type VideoExportFormat = 'webm' | 'mp4';
@@ -92,8 +80,6 @@ export type VideoExportFormat = 'webm' | 'mp4';
92
80
  *
93
81
  * If omitted for an explicit target bitrate, Mediabunny uses `'variable'`.
94
82
  *
95
- * @category Video export
96
- *
97
83
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoBitrateMode | VideoBitrateMode API reference}
98
84
  */
99
85
  export type VideoBitrateMode = 'variable' | 'constant';
@@ -106,8 +92,6 @@ export type VideoBitrateMode = 'variable' | 'constant';
106
92
  * availability and output characteristics vary by device.
107
93
  * - `'prefer-software'`: prefer CPU encoding, often more consistent across machines, but usually slower.
108
94
  *
109
- * @category Video export
110
- *
111
95
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoHardwareAcceleration | VideoHardwareAcceleration API reference}
112
96
  */
113
97
  export type VideoHardwareAcceleration = 'no-preference' | 'prefer-hardware' | 'prefer-software';
@@ -115,8 +99,6 @@ export type VideoExportErrorCode = 'VIDEO_EXPORT_UNSUPPORTED' | 'VIDEO_CODEC_UNS
115
99
  /**
116
100
  * Progress information emitted while a deterministic video is probed, captured, and written.
117
101
  *
118
- * @category Video export
119
- *
120
102
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportProgress | VideoExportProgress API reference}
121
103
  */
122
104
  export type VideoExportProgress = {
@@ -192,8 +174,6 @@ export type VideoExportProgress = {
192
174
  /**
193
175
  * Options for capturing deterministic textmode frames as MP4 or WebM video.
194
176
  *
195
- * @category Video export
196
- *
197
177
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions | VideoExportOptions API reference}
198
178
  */
199
179
  export type VideoExportOptions = {
@@ -2,7 +2,6 @@ import type { ZIPExportErrorCode } from './types';
2
2
  /**
3
3
  * Error raised by ZIP frame-sequence validation, capture, or archive creation.
4
4
  *
5
- * @category ZIP frame-sequence export
6
5
  * @see {@link https://code.textmode.art/api/textmode.export.js/classes/ZIPExportError | ZIPExportError API reference}
7
6
  */
8
7
  export declare class ZIPExportError extends Error {
@@ -6,28 +6,24 @@ import type { TXTExportOptions } from '../txt';
6
6
  /**
7
7
  * File format used for every frame in a ZIP frame-sequence export.
8
8
  *
9
- * @category ZIP frame-sequence export
10
9
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ZIPFrameFormat | ZIPFrameFormat API reference}
11
10
  */
12
11
  export type ZIPFrameFormat = 'png' | 'jpg' | 'webp' | 'svg' | 'json' | 'txt';
13
12
  /**
14
13
  * Lifecycle state reported by a ZIP frame-sequence export.
15
14
  *
16
- * @category ZIP frame-sequence export
17
15
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ZIPExportState | ZIPExportState API reference}
18
16
  */
19
17
  export type ZIPExportState = 'capturing' | 'finalizing' | 'completed' | 'error';
20
18
  /**
21
19
  * Machine-readable ZIP export failure category.
22
20
  *
23
- * @category ZIP frame-sequence export
24
21
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ZIPExportErrorCode | ZIPExportErrorCode API reference}
25
22
  */
26
23
  export type ZIPExportErrorCode = 'ZIP_EXPORT_INVALID_OPTIONS' | 'ZIP_EXPORT_ENCODING_UNSUPPORTED' | 'ZIP_EXPORT_TOO_LARGE' | 'ZIP_EXPORT_ABORTED' | 'ZIP_EXPORT_TIMEOUT' | 'ZIP_EXPORT_BUSY' | 'ZIP_EXPORT_DISPOSED' | 'ZIP_EXPORT_FAILED';
27
24
  /**
28
25
  * Progress information emitted while ZIP frames are captured and archived.
29
26
  *
30
- * @category ZIP frame-sequence export
31
27
  * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ZIPExportProgress | ZIPExportProgress API reference}
32
28
  */
33
29
  export interface ZIPExportProgress {
@@ -65,7 +61,6 @@ export interface ZIPExportProgress {
65
61
  /**
66
62
  * Options shared by all ZIP frame formats.
67
63
  *
68
- * @category ZIP frame-sequence export
69
64
  * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ZIPCaptureOptions | ZIPCaptureOptions API reference}
70
65
  */
71
66
  export interface ZIPCaptureOptions {
@@ -109,7 +104,6 @@ export interface ZIPCaptureOptions {
109
104
  /**
110
105
  * Format-specific options forwarded to each existing still exporter.
111
106
  *
112
- * @category ZIP frame-sequence export
113
107
  * @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ZIPFrameOptionsMap | ZIPFrameOptionsMap API reference}
114
108
  */
115
109
  export interface ZIPFrameOptionsMap {
@@ -123,7 +117,6 @@ export interface ZIPFrameOptionsMap {
123
117
  /**
124
118
  * Discriminated options for a deterministic ZIP frame-sequence export.
125
119
  *
126
- * @category ZIP frame-sequence export
127
120
  * @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ZIPExportOptions | ZIPExportOptions API reference}
128
121
  */
129
122
  export type ZIPExportOptions = {
@@ -15,30 +15,6 @@
15
15
  * or use the built-in export overlay. For recipes and format trade-offs, read
16
16
  * the [Exporting guide](/docs/exporting).
17
17
  *
18
- * @categoryDescription Workflow
19
- * Install the plugin and use the export helpers added to a textmode.js sketch.
20
- *
21
- * @categoryDescription Canvas capture
22
- * Export a still image from the rendered canvas.
23
- *
24
- * @categoryDescription GIF export
25
- * Capture deterministic frames and encode an animated GIF.
26
- *
27
- * @categoryDescription Video export
28
- * Capture deterministic frames and encode MP4 or WebM video with Mediabunny.
29
- *
30
- * @categoryDescription ZIP frame-sequence export
31
- * Capture deterministic PNG, JPEG, WebP, SVG, JSON, or TXT frames in a code-only ZIP archive.
32
- *
33
- * @categoryDescription Layer data export
34
- * Export selected-layer text or vector data as TXT or SVG.
35
- *
36
- * @categoryDescription JSON document data
37
- * Export selected-layer or full-stack document data as JSON.
38
- *
39
- * @categoryDescription Overlay
40
- * Configure and control the built-in export overlay.
41
- *
42
18
  * @showCategories
43
19
  */
44
20
  import type { TextmodePlugin } from 'textmode.js';
@@ -48,7 +24,7 @@ export type { TextmodeExportAPI, ExportOverlayController } from './types';
48
24
  export type { ImageExportOptions } from './exporters/image';
49
25
  export type { SVGExportOptions } from './exporters/svg';
50
26
  export type { TXTExportOptions } from './exporters/txt';
51
- export type { JSONExportColorMode, JSONExportOptions, JSONExportTarget, TextmodeDocumentJSON } from './exporters/json';
27
+ export type { JSONExportTarget, JSONExportColorMode, JSONExportOptions } from './exporters/json';
52
28
  export type { GIFExportOptions, GIFExportProgress } from './exporters/gif';
53
29
  export { ZIPExportError } from './exporters/zip';
54
30
  export type { ZIPCaptureOptions, ZIPExportErrorCode, ZIPExportOptions, ZIPExportProgress, ZIPExportState, ZIPFrameFormat, ZIPFrameOptionsMap, } from './exporters/zip';
@@ -57,8 +33,6 @@ export type { LayerExportOptions } from './exporters/base';
57
33
  /**
58
34
  * Default export plugin instance for the standard textmode.js workflow.
59
35
  *
60
- * @category Workflow
61
- *
62
36
  * @see {@link https://code.textmode.art/api/textmode.export.js/variables/ExportPlugin | ExportPlugin API reference}
63
37
  */
64
38
  export declare const ExportPlugin: TextmodePlugin;