figgyplot 0.2.1__cp315-cp315-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.
@@ -0,0 +1,803 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+
4
+ /**
5
+ * Exact range selected by the renderer-owned automatic cursor.
6
+ */
7
+ export class AutoStreamingRangeRequestResult {
8
+ private constructor();
9
+ free(): void;
10
+ [Symbol.dispose](): void;
11
+ same_selection_request(other: AutoStreamingRangeRequestResult): boolean;
12
+ readonly encodings: string[];
13
+ readonly lengths: Float64Array;
14
+ readonly offsets: Float64Array;
15
+ readonly pending_latest: boolean;
16
+ readonly revision: string;
17
+ readonly source_ids: string[];
18
+ readonly source_lengths: Float64Array;
19
+ readonly source_revisions: Float64Array;
20
+ readonly status: string;
21
+ readonly submitted_primitives: number;
22
+ readonly total_primitives: number;
23
+ }
24
+
25
+ /**
26
+ * Result of asking the renderer to start or coalesce one automatic draw.
27
+ */
28
+ export class AutoStreamingRequestResult {
29
+ private constructor();
30
+ free(): void;
31
+ [Symbol.dispose](): void;
32
+ readonly job_id: string | undefined;
33
+ readonly pending_latest: boolean;
34
+ readonly revision: string;
35
+ readonly source_ids: string[];
36
+ readonly source_revisions: Float64Array;
37
+ readonly status: string;
38
+ readonly submitted_primitives: number;
39
+ readonly total_primitives: number;
40
+ }
41
+
42
+ /**
43
+ * Axis frame presets (mirror of `model::AxisPreset`).
44
+ */
45
+ export enum AxisPreset {
46
+ BoxedInward = 0,
47
+ BoxedOutward = 1,
48
+ OpenOutward = 2,
49
+ OpenInward = 3,
50
+ Minimal = 4,
51
+ }
52
+
53
+ /**
54
+ * Series color rotations (mirror of `model::ColorCycle`).
55
+ */
56
+ export enum ColorCycle {
57
+ Classic = 0,
58
+ Vivid = 1,
59
+ Balanced = 2,
60
+ ColorblindSafe = 3,
61
+ Monochrome = 4,
62
+ }
63
+
64
+ export class FiggyChart {
65
+ private constructor();
66
+ free(): void;
67
+ [Symbol.dispose](): void;
68
+ /**
69
+ * Register or update a line series over two registered columns.
70
+ *
71
+ * Upsert by `series_id`: a new id takes the next color of the active
72
+ * cycle; an existing id is replaced in place and keeps its color.
73
+ * Non-empty `label` adds/updates the legend row.
74
+ */
75
+ add_line_series(series_id: string, x_column: string, y_column: string, line_width: number, label: string): void;
76
+ /**
77
+ * Apply an axis frame preset to all four axes (decoration-only).
78
+ */
79
+ apply_axis_preset(preset: AxisPreset): void;
80
+ /**
81
+ * Switch the series color rotation: recolors every series in order,
82
+ * rebuilds their GPU styles, and keeps legend swatches in sync.
83
+ */
84
+ apply_color_cycle(cycle: ColorCycle): void;
85
+ /**
86
+ * Fit BOTH axes to the union of every registered series, leaving a
87
+ * uniform `padding` fraction of the data span as margin on each
88
+ * side (`0.0` = no padding, `0.05` = 5% top/bottom/left/right).
89
+ * This is the whole fit policy — no rounding of the range ends;
90
+ * ticks land on nice values inside the range by themselves. Hosts
91
+ * should call this instead of re-deriving ranges.
92
+ *
93
+ * Each series contributes its exact original GPU primitive domain:
94
+ * valid adjacent segments for line-only mode, paired finite points
95
+ * for point-bearing modes, and enabled error endpoints. The reduction
96
+ * is compiled on first fit (`createComputePipelineAsync` on wasm)
97
+ * and cached by the normalized mode plus role-specific column
98
+ * revisions. Matrix-backed series use the same engine to return the
99
+ * exact cell/sample-lattice bounds; only histograms remain a metadata
100
+ * union because their uploaded edge column already is their geometry.
101
+ * Series registration itself does not submit GPU work.
102
+ */
103
+ auto_fit_all(padding: number): Promise<void>;
104
+ /**
105
+ * Fit the shared z axis to every matrix value column in the chart.
106
+ * A chart without a colourbar is left unchanged.
107
+ */
108
+ auto_fit_colorbar(padding: number): void;
109
+ /**
110
+ * Fit the x axis to a column's range with proportional padding.
111
+ */
112
+ auto_fit_x(column: string, padding: number): void;
113
+ auto_fit_y(column: string, padding: number): void;
114
+ /**
115
+ * Reserve or inspect the next exact range request. Repeated calls
116
+ * return the same ranges until `auto_stream_chart_submit_ranges`.
117
+ */
118
+ auto_stream_chart_request_ranges(): AutoStreamingRangeRequestResult;
119
+ /**
120
+ * Advance at most one renderer-selected automatic chunk. The typed
121
+ * arrays are borrowed only for this call.
122
+ */
123
+ auto_stream_chart_step(ids: string[], revisions: Float64Array, sources: Array<any>): StreamingStepResult;
124
+ /**
125
+ * Submit exactly the typed-array chunks named by the pending range
126
+ * request. The arrays are borrowed for this call only.
127
+ */
128
+ auto_stream_chart_submit_ranges(ids: string[], revisions: Float64Array, source_lengths: Float64Array, offsets: Float64Array, sources: Array<any>): StreamingStepResult;
129
+ /**
130
+ * Begin an independent replay of the completed stream. The facade
131
+ * supplies only renderer-requested ranges between these calls.
132
+ */
133
+ begin_stream_export(scale: number, max_primitives_per_chunk: number): StreamingOperationHandle;
134
+ /**
135
+ * Compatibility entry point; always rejects without requesting ranges.
136
+ */
137
+ begin_stream_pick_data(_x: number, _y: number, _max_distance_px: number, _max_primitives_per_chunk: number): Promise<StreamingOperationHandle>;
138
+ /**
139
+ * Compatibility entry point. Nonresident picking is disabled because
140
+ * exact source replay can take as long as the original render.
141
+ */
142
+ begin_stream_pick_point(_x: number, _y: number, _max_distance_px: number, _max_primitives_per_chunk: number): Promise<StreamingOperationHandle>;
143
+ /**
144
+ * Start or restart this chart's exact streaming surface and renderer-
145
+ * owned CPU cursor. No LOD or downsampling is performed.
146
+ */
147
+ begin_streaming(max_primitives_per_chunk: number): void;
148
+ cancel_stream_operation_and_wait(handle: StreamingOperationHandle): Promise<void>;
149
+ cancel_streaming(): void;
150
+ /**
151
+ * Cancel this chart and resolve only after its submitted work and
152
+ * retired renderer-owned surfaces have crossed the completion fence.
153
+ */
154
+ cancel_streaming_and_wait(): Promise<void>;
155
+ /**
156
+ * Configure the total GPU budget and chart-local packed-view limit.
157
+ * Automatic streaming keeps original sources nonresident, then caches
158
+ * only source rows whose geometry reaches the current view when the
159
+ * completed packed view fits both limits.
160
+ */
161
+ configure_auto_residency(memory_budget_bytes: number, working_set_limit_bytes: number): void;
162
+ /**
163
+ * Install the renderer's bounded streaming resources once.
164
+ * Byte limits are JavaScript safe integers; no source payload is retained.
165
+ */
166
+ configure_streaming(max_active_charts: number, max_in_flight_chunks: number, max_columns_per_chunk: number, max_chunk_input_bytes: number, max_in_flight_gpu_bytes: number): void;
167
+ /**
168
+ * Bind the low-level chart kernel to `canvas` (uses the canvas's
169
+ * current pixel size). Ordinary web hosts should prefer
170
+ * `figgy-chart.js` and its `<figgy-chart>` Custom Element.
171
+ * JS: `const chart = await FiggyChart.create(canvas);`
172
+ */
173
+ static create(canvas: HTMLCanvasElement): Promise<FiggyChart>;
174
+ /**
175
+ * Same as [`Self::create`], reporting each init stage to `on_event`
176
+ * as `{ scope, stage, phase }`. Do not call other kernel methods
177
+ * from the callback.
178
+ */
179
+ static create_with_progress(canvas: HTMLCanvasElement, on_event: Function): Promise<FiggyChart>;
180
+ /**
181
+ * Normalize a complete referenced-column closure from resident or
182
+ * mixed authority to exact streamed metadata. The typed arrays are
183
+ * borrowed only for the atomic transition and are not retained by
184
+ * Rust; the high-level JS executor keeps the replayable references.
185
+ */
186
+ demote_auto_resident_columns(ids: string[], revisions: Float64Array, sources: Array<any>): void;
187
+ discard_stream_selection_request(request: AutoStreamingRangeRequestResult): void;
188
+ /**
189
+ * Compile the drawable-series fit-bound engine without drawing. On wasm
190
+ * this uses `createComputePipelineAsync`. Series registration does
191
+ * not do this; `auto_fit_all` does.
192
+ */
193
+ ensure_extent_engine(): Promise<void>;
194
+ /**
195
+ * Export the panel as PNG bytes at `scale ×` resolution.
196
+ * JS: `const png = await chart.export_png(2.0);`
197
+ * Holds a mutable borrow of this WASM object until the Promise settles.
198
+ * wasm-bindgen checks borrows; it does not queue concurrent calls.
199
+ * While awaiting export, the host must prevent every other call on the
200
+ * same object, including frame(), getters, edits, resize, picking and free().
201
+ * Overlapping access can throw "recursive use of an object". Release the
202
+ * host's per-instance operation gate in finally on success or rejection.
203
+ * The example `<figgy-chart>` facade supplies that gate and rejects competing
204
+ * application calls; raw FiggyChart callers must manage it themselves.
205
+ * Automatic contour placement validates `spacing_px * scale` after the
206
+ * export scale is clamped. Explicit placement does not multiply spacing.
207
+ * Scale-product overflow or an atlas beyond the adapter texture limit
208
+ * rejects the export before contour GPU state changes.
209
+ */
210
+ export_png(scale: number): Promise<Uint8Array>;
211
+ finish_stream_export(handle: StreamingOperationHandle): Promise<Uint8Array>;
212
+ /**
213
+ * Compatibility entry point; no streamed pick operation can start.
214
+ */
215
+ finish_stream_pick_data(_handle: StreamingOperationHandle): Promise<any>;
216
+ /**
217
+ * Compatibility entry point; no streamed pick operation can start.
218
+ */
219
+ finish_stream_pick_point(_handle: StreamingOperationHandle): Promise<any>;
220
+ /**
221
+ * Submit the current chart if it is dirty, then wait until that GPU
222
+ * work has finished. Hosts should keep a loading overlay up until
223
+ * this resolves. The wait does not remove a main-thread Dawn/driver
224
+ * freeze; it only reports first-submit completion.
225
+ *
226
+ * JS: `await chart.first_frame_ready();`
227
+ */
228
+ first_frame_ready(): Promise<void>;
229
+ /**
230
+ * Process pending pool maintenance and draw only when visual state is
231
+ * dirty. A clean rAF tick returns before touching the pool or surface.
232
+ */
233
+ frame(): void;
234
+ /**
235
+ * Serialize the full chart option SSoT to a JSON string.
236
+ * JS: `const cfg = JSON.parse(chart.get_config());`
237
+ */
238
+ get_config(): string;
239
+ /**
240
+ * Serialize the series declarations (columns, render type, styles).
241
+ */
242
+ get_series(): string;
243
+ /**
244
+ * Read-only accounting. These are requested GPU allocations, not a
245
+ * driver VRAM measurement; retired bytes remain charged until the
246
+ * queue completion callback fires.
247
+ */
248
+ gpu_memory_status(): string;
249
+ has_selection(): boolean;
250
+ /**
251
+ * Hit-test the chart chrome at canvas pixel `(x, y)` — returns the
252
+ * topmost element's stable id (`"data_area"`, `"axis_bottom"`,
253
+ * `"tick_labels_left"`, `"axis_title_left"`, `"colorbar"`,
254
+ * `"colorbar_axis"`, `"colorbar_tick_labels"`,
255
+ * `"colorbar_title"`, …) or `null`. Pure geometry, no selection state
256
+ * change: the renderer's own layout answers, so hosts don't have to
257
+ * re-derive box positions for hover cursors / context UI.
258
+ */
259
+ hit_test(x: number, y: number): string | undefined;
260
+ /**
261
+ * Metadata-only admission for incoming columns; no payload is read,
262
+ * registered, uploaded, or reserved. Chart-derived buffers are excluded.
263
+ */
264
+ inspect_column_admission(lengths: Float64Array): string;
265
+ /**
266
+ * Queue cancellation only when an automatic stream is active.
267
+ */
268
+ interrupt_render(): string;
269
+ /**
270
+ * Load the bundled demo (sine + RC charge curves) — lets a frontend
271
+ * see a real chart without wiring data first. Repeated calls replace
272
+ * the demo registrations and keep the same series declarations.
273
+ */
274
+ load_demo(): void;
275
+ /**
276
+ * Move among source rows represented in the completed packed view.
277
+ * Returns only the original source index; no source or GPU readback.
278
+ */
279
+ next_view_point_index(source_id: string | null | undefined, series_id: string, current: number, forward: boolean): any;
280
+ /**
281
+ * Pointer move with frame delta — drags or resizes the selection.
282
+ */
283
+ on_move(dx: number, dy: number): void;
284
+ /**
285
+ * Pointer press. Returns `true` while something is selected.
286
+ * The host can mirror that state in its own UI.
287
+ */
288
+ on_press(x: number, y: number): boolean;
289
+ on_release(): void;
290
+ /**
291
+ * Pick the nearest visible data primitive at canvas pixel `(x, y)`;
292
+ * equal-distance hits follow chart paint order.
293
+ * Unlike `pick_point`, this includes histogram bins, canonical heatmap
294
+ * cells and contour levels. The tagged result contains only stable
295
+ * source/series indices plus `distance_px`; values and geometry stay
296
+ * in the renderer's GPU-backed SSoT. Resolves to `undefined` on miss.
297
+ */
298
+ pick_data(x: number, y: number, max_distance_px: number): Promise<any>;
299
+ /**
300
+ * Pick the nearest visible data primitive to canvas pixel `(x, y)`.
301
+ * Scatter hits use the visible marker size, including per-point style
302
+ * mapping; line strokes snap to the nearest endpoint data point on
303
+ * the hit segment. Errorbar stems/caps are not pick targets.
304
+ * Resolves to a JSON string
305
+ * `{ source_id, series_id, point_index, distance_px }`, or
306
+ * `undefined` when no visible primitive is within `max_distance_px`.
307
+ * The `<figgy-chart>` facade parses the string and normalizes
308
+ * `undefined` to `null`.
309
+ */
310
+ pick_point(x: number, y: number, max_distance_px: number): Promise<any>;
311
+ /**
312
+ * Prepare the same resident Cartesian groups as prewarm_all_with_progress,
313
+ * without a progress callback. The host must prevent other calls on this
314
+ * kernel until the Promise settles; wasm-bindgen does not queue them.
315
+ */
316
+ prewarm_all(): Promise<void>;
317
+ /**
318
+ * Prepare the resident Cartesian pipeline groups while reporting the
319
+ * current stage as `{ scope, stage, phase }` objects. Separate bounded
320
+ * renderers, nonresident matrix/tile pipelines and future chart-specific
321
+ * allocations are outside this scope. The chart is mutably
322
+ * borrowed until the Promise settles; hosts must keep their normal
323
+ * async busy gate active and queue chart work rather than calling the
324
+ * kernel from the callback.
325
+ */
326
+ prewarm_all_with_progress(on_event: Function): Promise<void>;
327
+ /**
328
+ * Compile the exact GPU picker and prepare it for the current chart.
329
+ * Repeated calls, including retries, reuse renderer-owned state.
330
+ */
331
+ prewarm_gpu_picking(): Promise<void>;
332
+ /**
333
+ * Register a new `Float32Array` column. Existing ids are rejected.
334
+ */
335
+ register_column_f32(id: string, data: Float32Array): void;
336
+ /**
337
+ * Register a new `Float64Array` column as GPU `(hi, lo)` pairs.
338
+ * Existing ids are rejected.
339
+ */
340
+ register_column_f64(id: string, data: Float64Array): void;
341
+ /**
342
+ * Register many new columns from **one** flat `Float32Array`.
343
+ *
344
+ * `data` holds `ids.len()` columns of `values_per_column` values each, in
345
+ * id order — the memory layout a matrix already has. This is the wasm
346
+ * counterpart of `Renderer::add_columns`: one staging buffer and one
347
+ * submit for the whole batch, so a 5000-column grid costs one upload
348
+ * rather than 5000 (design B.8).
349
+ *
350
+ * Nothing is copied: each column is a borrowed slice of `data` written
351
+ * straight into the staging buffer.
352
+ *
353
+ * All-or-nothing. A rejected batch registers no ids and uploads nothing.
354
+ * Ragged batches are not supported — a matrix is rectangular by
355
+ * definition, and unequal lengths still work through
356
+ * `register_column_f32` one at a time.
357
+ */
358
+ register_columns_f32(ids: string[], data: Float32Array, values_per_column: number): void;
359
+ /**
360
+ * Register many new columns from **one** flat `Float64Array`.
361
+ *
362
+ * The f64 counterpart of [`Self::register_columns_f32`], and it keeps the
363
+ * same precision the single-column `register_column_f64` does: values are
364
+ * uploaded as the `(hi, lo)` f32 pair, not cast to f32.
365
+ */
366
+ register_columns_f64(ids: string[], data: Float64Array, values_per_column: number): void;
367
+ /**
368
+ * Register a font (TTF/OTF/TTC bytes) for SSoT `font` family names.
369
+ * Returns the family names the file declares — use them verbatim in
370
+ * `content.font` / label styles. Registered fonts win over native
371
+ * system fonts, so resolution behaves identically on web and
372
+ * desktop. Already-drawn text re-rasterizes on the next `frame()`.
373
+ *
374
+ * JS: `chart.register_font(new Uint8Array(await (await fetch(url)).arrayBuffer()))`
375
+ */
376
+ register_font(bytes: Uint8Array): string[];
377
+ /**
378
+ * Register replayable stream metadata without requiring a complete
379
+ * typed array at the wasm boundary. Payload ranges are supplied only
380
+ * after the renderer requests them.
381
+ */
382
+ register_streaming_column_sources(ids: string[], revisions: Float64Array, lengths: Float64Array, encodings: string[]): void;
383
+ /**
384
+ * Register N replayable typed-array columns without uploading or
385
+ * retaining their contents. Each source must be a `Float32Array` or
386
+ * `Float64Array`; the latter uses the renderer's hi/lo encoding.
387
+ */
388
+ register_streaming_columns(ids: string[], revisions: Float64Array, sources: Array<any>): void;
389
+ /**
390
+ * Compact live resident columns, drop the unused pool slab, and wait
391
+ * for the device completion fence before reporting reclaimed bytes.
392
+ * The 16 MiB startup slab remains as the minimum reusable pool.
393
+ */
394
+ release_unused_gpu_memory(): Promise<string>;
395
+ /**
396
+ * Unregister a column. Series referencing it are removed too so the
397
+ * chart can never point at freed data. Auto-managed legends remove
398
+ * the corresponding rows; freely edited legends preserve their text
399
+ * and only synchronize recognized series symbols.
400
+ * Returns `true` when the column existed.
401
+ */
402
+ remove_column(id: string): boolean;
403
+ /**
404
+ * Unregister a series. Columns stay registered. Auto-managed legends
405
+ * remove its row; freely edited legends preserve their text and only
406
+ * synchronize recognized series symbols.
407
+ * Returns `true` when the series existed.
408
+ */
409
+ remove_series(series_id: string): boolean;
410
+ /**
411
+ * Replace existing stream metadata. The new revision becomes live
412
+ * only after the renderer accepts the whole batch.
413
+ */
414
+ replace_streaming_column_sources(ids: string[], revisions: Float64Array, lengths: Float64Array, encodings: string[]): void;
415
+ /**
416
+ * Atomically publish newer revisions for existing streamed columns.
417
+ * The renderer still retains no JavaScript typed-array reference.
418
+ */
419
+ replace_streaming_columns(ids: string[], revisions: Float64Array, sources: Array<any>): void;
420
+ /**
421
+ * Ask the renderer to draw the latest chart state. Decoration-only
422
+ * changes reuse the active accumulation; data, series, view, target,
423
+ * and chunk-budget changes replace it after successful preflight.
424
+ */
425
+ request_auto_streaming_chart(max_primitives_per_chunk: number): AutoStreamingRequestResult;
426
+ /**
427
+ * Start a two-phase resident or mixed closure replacement. Existing
428
+ * authority remains live until the range cursor completes.
429
+ */
430
+ request_resident_stream_handoff(ids: string[], revisions: Float64Array, lengths: Float64Array, encodings: string[], max_primitives_per_chunk: number): AutoStreamingRequestResult;
431
+ /**
432
+ * Synchronous fit request routing, allowing the facade to wait for
433
+ * renderer progress without holding a wasm mutable borrow.
434
+ */
435
+ request_stream_auto_fit(padding: number): boolean;
436
+ /**
437
+ * Explicitly rebuild the auto legend from `SeriesConfig.label`.
438
+ * Legacy string labels are used only when a series has no rich label.
439
+ */
440
+ reset_legend_from_series_labels(): void;
441
+ /**
442
+ * Resize the swap chain viewport. The chart Config keeps its
443
+ * document/export `chart_area`; live rendering scales that logical
444
+ * document into this surface.
445
+ */
446
+ resize(width: number, height: number): void;
447
+ /**
448
+ * Report the effective primitive/grid extent currently drawn.
449
+ */
450
+ series_draw_info(series_id: string): string;
451
+ /**
452
+ * Set the WebGPU surface clear color used behind the chart panel.
453
+ * Components are linear 0..1 RGBA floats. This is host/app state:
454
+ * it does not change the chart Config JSON.
455
+ */
456
+ set_clear_color(r: number, g: number, b: number, a: number): void;
457
+ /**
458
+ * Replace the colourbar's z-axis options as one SSoT value. This is
459
+ * the focused edit boundary for tick direction/style/length, value
460
+ * direction, tick-label style/offsets, and title options.
461
+ */
462
+ set_colorbar_axis(json: string): void;
463
+ /**
464
+ * Set the colourbar title text and make it visible. An empty string
465
+ * hides it. The full rich-text/title offsets remain available through
466
+ * `set_colorbar_axis` or the chart Config SSoT.
467
+ */
468
+ set_colorbar_title(text: string): void;
469
+ /**
470
+ * Replace the whole option SSoT from JSON. Marks everything dirty —
471
+ * the next `frame()` re-rasters the chrome and refreshes the
472
+ * transform, exactly like any other config edit.
473
+ * JS: `chart.set_config(JSON.stringify(cfg));`
474
+ */
475
+ set_config(json: string): void;
476
+ /**
477
+ * Replace one contour series' levels with axis-native nice levels.
478
+ * The resulting explicit values remain the series SSoT.
479
+ */
480
+ set_contour_nice_levels(series_id: string, target_count: number, use_colormap_colors: boolean): number;
481
+ /**
482
+ * Replace the typed data-selection overlay config. Passing JSON
483
+ * `null` clears it. This is independent of the legacy point-only
484
+ * overlay so existing hosts keep their current behavior.
485
+ */
486
+ set_picked_data(json: string): void;
487
+ /**
488
+ * Replace the picked-point overlay config. Passing JSON `null`
489
+ * clears it.
490
+ */
491
+ set_picked_points(json: string): void;
492
+ /**
493
+ * Opt in to pool growth on an otherwise out-of-space upload. Growth
494
+ * remains bounded by the device storage-binding limit and the
495
+ * configured renderer memory budget.
496
+ */
497
+ set_pool_auto_growth(enabled: boolean): void;
498
+ /**
499
+ * Replace the series declarations from JSON. Column references must
500
+ * already be registered; GPU styles are rebuilt, legend labels are
501
+ * kept for series ids that survive.
502
+ *
503
+ * `Contour` and `HeatmapContour` accept `contour.levels` lists with
504
+ * 0 through 1024 entries. A list with 1025 or more entries rejects the
505
+ * JSON call with a JavaScript exception; the previously committed
506
+ * chart config, series declarations, and GPU styles remain active.
507
+ * The WASM facade neither adds a smaller limit nor truncates levels.
508
+ * Contour labels use the same 1024 capacity for automatic and explicit
509
+ * placement. `spacing_px` must be finite and positive even for hidden
510
+ * labels or explicit anchors; rejection preserves the prior state.
511
+ */
512
+ set_series(json: string): void;
513
+ /**
514
+ * Set / change / remove a series' legend label. `'\n'` breaks lines;
515
+ * unicode sub/superscripts (`₀`, `⁻`, …) map to styled segments.
516
+ * Empty string removes the legend row. Returns `true` when the
517
+ * series exists.
518
+ */
519
+ set_series_label(series_id: string, label: string): boolean;
520
+ set_stream_chunk_budget(primitives: number): void;
521
+ set_stream_operation_chunk_budget(handle: StreamingOperationHandle, max_primitives: number): void;
522
+ set_title(text: string): void;
523
+ set_x_title(text: string): void;
524
+ set_y_title(text: string): void;
525
+ stream_operation_request_ranges(handle: StreamingOperationHandle): AutoStreamingRangeRequestResult;
526
+ stream_operation_submit_ranges(handle: StreamingOperationHandle, ids: string[], revisions: Float64Array, source_lengths: Float64Array, offsets: Float64Array, sources: Array<any>): StreamingStepResult;
527
+ /**
528
+ * Independent selected-row request; it never advances the data cursor.
529
+ */
530
+ stream_selection_request_ranges(): AutoStreamingRangeRequestResult;
531
+ stream_selection_submit_ranges(request: AutoStreamingRangeRequestResult, ids: string[], revisions: Float64Array, source_lengths: Float64Array, offsets: Float64Array, sources: Array<any>): void;
532
+ /**
533
+ * Pure metadata inspection; does not poll, reserve a range, or draw.
534
+ */
535
+ stream_status(): string;
536
+ /**
537
+ * Advance at most one renderer-selected chunk. `sources` contains the
538
+ * original replayable typed arrays; only the requested range is read
539
+ * directly into mapped staging, and no owned CPU data mirror is made.
540
+ */
541
+ stream_step(ids: string[], revisions: Float64Array, sources: Array<any>): StreamingStepResult;
542
+ streaming_capabilities(): string;
543
+ /**
544
+ * Wake after work already submitted to this queue completes. The
545
+ * returned promise owns only its completion receiver, not a chart or
546
+ * renderer borrow. Resolving does not service receipts or draw a frame.
547
+ */
548
+ streaming_gpu_ready(): Promise<any>;
549
+ streaming_usage(): StreamingUsageResult;
550
+ suspend_stream_selection(): void;
551
+ /**
552
+ * Atomically replace an existing column from a `Float32Array`.
553
+ * Missing ids are rejected; every accepted call performs an upload.
554
+ */
555
+ update_register_column_f32(id: string, data: Float32Array): void;
556
+ /**
557
+ * Atomically replace an existing column from a `Float64Array` as
558
+ * GPU `(hi, lo)` pairs. Every accepted call performs an upload.
559
+ */
560
+ update_register_column_f64(id: string, data: Float64Array): void;
561
+ /**
562
+ * Wait until previously submitted GPU work has finished. Does not
563
+ * draw. Used to separate an earlier compute submit from the next
564
+ * render submit when measuring startup.
565
+ */
566
+ wait_submitted_work(): Promise<void>;
567
+ /**
568
+ * Alias for [`Self::first_frame_ready`].
569
+ */
570
+ warm_up(): Promise<void>;
571
+ }
572
+
573
+ /**
574
+ * Opaque renderer-issued replay operation. Contains no column payload.
575
+ */
576
+ export class StreamingOperationHandle {
577
+ private constructor();
578
+ free(): void;
579
+ [Symbol.dispose](): void;
580
+ }
581
+
582
+ /**
583
+ * Result of one non-blocking exact streaming step.
584
+ */
585
+ export class StreamingStepResult {
586
+ private constructor();
587
+ free(): void;
588
+ [Symbol.dispose](): void;
589
+ readonly pending_latest: boolean;
590
+ readonly revision: string;
591
+ readonly status: string;
592
+ readonly submitted_primitives: number;
593
+ readonly total_primitives: number;
594
+ }
595
+
596
+ /**
597
+ * Current bounded renderer-owned streaming reservations.
598
+ */
599
+ export class StreamingUsageResult {
600
+ private constructor();
601
+ free(): void;
602
+ [Symbol.dispose](): void;
603
+ readonly active_charts: number;
604
+ readonly in_flight_chunks: number;
605
+ readonly reserved_gpu_bytes: number;
606
+ }
607
+
608
+ /**
609
+ * CSS color strings (`"rgb(r g b / a)"`) for a cycle — lets the host UI
610
+ * render swatches / legends with exactly the chart's palette.
611
+ */
612
+ export function color_cycle_css(cycle: ColorCycle): string[];
613
+
614
+ /**
615
+ * Every valid `draw_style` mode tag, as a JSON string array.
616
+ */
617
+ export function draw_style_modes(): string;
618
+
619
+ /**
620
+ * Parameter metadata for one `draw_style` mode — a JSON array of
621
+ * `{key, min, max, default, integer}`. Ranges are the RECOMMENDED
622
+ * slider spans (the SSoT accepts values beyond them; the renderer
623
+ * applies only safety guards), and they come from the model crate, so
624
+ * hosts never hardcode them.
625
+ *
626
+ * JS: `const specs = JSON.parse(draw_style_param_specs("constellation"));`
627
+ * Valid modes: `draw_style_modes()`.
628
+ */
629
+ export function draw_style_param_specs(mode: string): string;
630
+
631
+ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
632
+
633
+ export interface InitOutput {
634
+ readonly memory: WebAssembly.Memory;
635
+ readonly __wbg_autostreamingrangerequestresult_free: (a: number, b: number) => void;
636
+ readonly __wbg_autostreamingrequestresult_free: (a: number, b: number) => void;
637
+ readonly __wbg_figgychart_free: (a: number, b: number) => void;
638
+ readonly __wbg_streamingoperationhandle_free: (a: number, b: number) => void;
639
+ readonly __wbg_streamingstepresult_free: (a: number, b: number) => void;
640
+ readonly __wbg_streamingusageresult_free: (a: number, b: number) => void;
641
+ readonly autostreamingrangerequestresult_encodings: (a: number) => [number, number];
642
+ readonly autostreamingrangerequestresult_lengths: (a: number) => [number, number];
643
+ readonly autostreamingrangerequestresult_offsets: (a: number) => [number, number];
644
+ readonly autostreamingrangerequestresult_pending_latest: (a: number) => number;
645
+ readonly autostreamingrangerequestresult_revision: (a: number) => [number, number];
646
+ readonly autostreamingrangerequestresult_same_selection_request: (a: number, b: number) => number;
647
+ readonly autostreamingrangerequestresult_source_ids: (a: number) => [number, number];
648
+ readonly autostreamingrangerequestresult_source_lengths: (a: number) => [number, number];
649
+ readonly autostreamingrangerequestresult_source_revisions: (a: number) => [number, number];
650
+ readonly autostreamingrangerequestresult_status: (a: number) => [number, number];
651
+ readonly autostreamingrangerequestresult_submitted_primitives: (a: number) => number;
652
+ readonly autostreamingrangerequestresult_total_primitives: (a: number) => number;
653
+ readonly autostreamingrequestresult_job_id: (a: number) => [number, number];
654
+ readonly autostreamingrequestresult_pending_latest: (a: number) => number;
655
+ readonly autostreamingrequestresult_revision: (a: number) => [number, number];
656
+ readonly autostreamingrequestresult_source_ids: (a: number) => [number, number];
657
+ readonly autostreamingrequestresult_source_revisions: (a: number) => [number, number];
658
+ readonly autostreamingrequestresult_status: (a: number) => [number, number];
659
+ readonly autostreamingrequestresult_submitted_primitives: (a: number) => number;
660
+ readonly autostreamingrequestresult_total_primitives: (a: number) => number;
661
+ readonly color_cycle_css: (a: number) => [number, number];
662
+ readonly draw_style_modes: () => [number, number, number, number];
663
+ readonly draw_style_param_specs: (a: number, b: number) => [number, number, number, number];
664
+ readonly figgychart_add_line_series: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
665
+ readonly figgychart_apply_axis_preset: (a: number, b: number) => [number, number];
666
+ readonly figgychart_apply_color_cycle: (a: number, b: number) => [number, number];
667
+ readonly figgychart_auto_fit_all: (a: number, b: number) => any;
668
+ readonly figgychart_auto_fit_colorbar: (a: number, b: number) => [number, number];
669
+ readonly figgychart_auto_fit_x: (a: number, b: number, c: number, d: number) => [number, number];
670
+ readonly figgychart_auto_fit_y: (a: number, b: number, c: number, d: number) => [number, number];
671
+ readonly figgychart_auto_stream_chart_request_ranges: (a: number) => [number, number, number];
672
+ readonly figgychart_auto_stream_chart_step: (a: number, b: number, c: number, d: number, e: number, f: any) => [number, number, number];
673
+ readonly figgychart_auto_stream_chart_submit_ranges: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: any) => [number, number, number];
674
+ readonly figgychart_begin_stream_export: (a: number, b: number, c: number) => [number, number, number];
675
+ readonly figgychart_begin_stream_pick_data: (a: number, b: number, c: number, d: number, e: number) => any;
676
+ readonly figgychart_begin_stream_pick_point: (a: number, b: number, c: number, d: number, e: number) => any;
677
+ readonly figgychart_begin_streaming: (a: number, b: number) => [number, number];
678
+ readonly figgychart_cancel_stream_operation_and_wait: (a: number, b: number) => any;
679
+ readonly figgychart_cancel_streaming: (a: number) => [number, number];
680
+ readonly figgychart_cancel_streaming_and_wait: (a: number) => any;
681
+ readonly figgychart_configure_auto_residency: (a: number, b: number, c: number) => [number, number];
682
+ readonly figgychart_configure_streaming: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
683
+ readonly figgychart_create: (a: any) => any;
684
+ readonly figgychart_create_with_progress: (a: any, b: any) => any;
685
+ readonly figgychart_demote_auto_resident_columns: (a: number, b: number, c: number, d: number, e: number, f: any) => [number, number];
686
+ readonly figgychart_discard_stream_selection_request: (a: number, b: number) => [number, number];
687
+ readonly figgychart_ensure_extent_engine: (a: number) => any;
688
+ readonly figgychart_export_png: (a: number, b: number) => any;
689
+ readonly figgychart_finish_stream_export: (a: number, b: number) => any;
690
+ readonly figgychart_finish_stream_pick_data: (a: number, b: number) => any;
691
+ readonly figgychart_finish_stream_pick_point: (a: number, b: number) => any;
692
+ readonly figgychart_first_frame_ready: (a: number) => any;
693
+ readonly figgychart_frame: (a: number) => [number, number];
694
+ readonly figgychart_get_config: (a: number) => [number, number, number, number];
695
+ readonly figgychart_get_series: (a: number) => [number, number, number, number];
696
+ readonly figgychart_gpu_memory_status: (a: number) => [number, number];
697
+ readonly figgychart_has_selection: (a: number) => number;
698
+ readonly figgychart_hit_test: (a: number, b: number, c: number) => [number, number];
699
+ readonly figgychart_inspect_column_admission: (a: number, b: number, c: number) => [number, number, number, number];
700
+ readonly figgychart_interrupt_render: (a: number) => [number, number, number, number];
701
+ readonly figgychart_load_demo: (a: number) => [number, number];
702
+ readonly figgychart_next_view_point_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number];
703
+ readonly figgychart_on_move: (a: number, b: number, c: number) => [number, number];
704
+ readonly figgychart_on_press: (a: number, b: number, c: number) => [number, number, number];
705
+ readonly figgychart_on_release: (a: number) => void;
706
+ readonly figgychart_pick_data: (a: number, b: number, c: number, d: number) => any;
707
+ readonly figgychart_pick_point: (a: number, b: number, c: number, d: number) => any;
708
+ readonly figgychart_prewarm_all: (a: number) => any;
709
+ readonly figgychart_prewarm_all_with_progress: (a: number, b: any) => any;
710
+ readonly figgychart_prewarm_gpu_picking: (a: number) => any;
711
+ readonly figgychart_register_column_f32: (a: number, b: number, c: number, d: number, e: number) => [number, number];
712
+ readonly figgychart_register_column_f64: (a: number, b: number, c: number, d: number, e: number) => [number, number];
713
+ readonly figgychart_register_columns_f32: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
714
+ readonly figgychart_register_columns_f64: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
715
+ readonly figgychart_register_font: (a: number, b: number, c: number) => [number, number, number, number];
716
+ readonly figgychart_register_streaming_column_sources: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
717
+ readonly figgychart_register_streaming_columns: (a: number, b: number, c: number, d: number, e: number, f: any) => [number, number];
718
+ readonly figgychart_release_unused_gpu_memory: (a: number) => any;
719
+ readonly figgychart_remove_column: (a: number, b: number, c: number) => [number, number, number];
720
+ readonly figgychart_remove_series: (a: number, b: number, c: number) => [number, number, number];
721
+ readonly figgychart_replace_streaming_column_sources: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
722
+ readonly figgychart_replace_streaming_columns: (a: number, b: number, c: number, d: number, e: number, f: any) => [number, number];
723
+ readonly figgychart_request_auto_streaming_chart: (a: number, b: number) => [number, number, number];
724
+ readonly figgychart_request_resident_stream_handoff: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number, number];
725
+ readonly figgychart_request_stream_auto_fit: (a: number, b: number) => [number, number, number];
726
+ readonly figgychart_reset_legend_from_series_labels: (a: number) => [number, number];
727
+ readonly figgychart_resize: (a: number, b: number, c: number) => [number, number];
728
+ readonly figgychart_series_draw_info: (a: number, b: number, c: number) => [number, number, number, number];
729
+ readonly figgychart_set_clear_color: (a: number, b: number, c: number, d: number, e: number) => void;
730
+ readonly figgychart_set_colorbar_axis: (a: number, b: number, c: number) => [number, number];
731
+ readonly figgychart_set_colorbar_title: (a: number, b: number, c: number) => [number, number];
732
+ readonly figgychart_set_config: (a: number, b: number, c: number) => [number, number];
733
+ readonly figgychart_set_contour_nice_levels: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
734
+ readonly figgychart_set_picked_data: (a: number, b: number, c: number) => [number, number];
735
+ readonly figgychart_set_picked_points: (a: number, b: number, c: number) => [number, number];
736
+ readonly figgychart_set_pool_auto_growth: (a: number, b: number) => void;
737
+ readonly figgychart_set_series: (a: number, b: number, c: number) => [number, number];
738
+ readonly figgychart_set_series_label: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
739
+ readonly figgychart_set_stream_chunk_budget: (a: number, b: number) => [number, number];
740
+ readonly figgychart_set_stream_operation_chunk_budget: (a: number, b: number, c: number) => [number, number];
741
+ readonly figgychart_set_title: (a: number, b: number, c: number) => [number, number];
742
+ readonly figgychart_set_x_title: (a: number, b: number, c: number) => [number, number];
743
+ readonly figgychart_set_y_title: (a: number, b: number, c: number) => [number, number];
744
+ readonly figgychart_stream_operation_request_ranges: (a: number, b: number) => [number, number, number];
745
+ readonly figgychart_stream_operation_submit_ranges: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: any) => [number, number, number];
746
+ readonly figgychart_stream_selection_request_ranges: (a: number) => [number, number, number];
747
+ readonly figgychart_stream_selection_submit_ranges: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: any) => [number, number];
748
+ readonly figgychart_stream_status: (a: number) => [number, number, number, number];
749
+ readonly figgychart_stream_step: (a: number, b: number, c: number, d: number, e: number, f: any) => [number, number, number];
750
+ readonly figgychart_streaming_capabilities: (a: number) => [number, number];
751
+ readonly figgychart_streaming_gpu_ready: (a: number) => any;
752
+ readonly figgychart_streaming_usage: (a: number) => number;
753
+ readonly figgychart_suspend_stream_selection: (a: number) => [number, number];
754
+ readonly figgychart_update_register_column_f32: (a: number, b: number, c: number, d: number, e: number) => [number, number];
755
+ readonly figgychart_update_register_column_f64: (a: number, b: number, c: number, d: number, e: number) => [number, number];
756
+ readonly figgychart_wait_submitted_work: (a: number) => any;
757
+ readonly figgychart_warm_up: (a: number) => any;
758
+ readonly streamingstepresult_pending_latest: (a: number) => number;
759
+ readonly streamingstepresult_revision: (a: number) => [number, number];
760
+ readonly streamingstepresult_status: (a: number) => [number, number];
761
+ readonly streamingstepresult_submitted_primitives: (a: number) => number;
762
+ readonly streamingstepresult_total_primitives: (a: number) => number;
763
+ readonly streamingusageresult_active_charts: (a: number) => number;
764
+ readonly streamingusageresult_in_flight_chunks: (a: number) => number;
765
+ readonly streamingusageresult_reserved_gpu_bytes: (a: number) => number;
766
+ readonly wasm_bindgen_828f888c0d3e13b9___convert__closures_____invoke___js_sys_9d9a0597b9bb8a15___Function_fn_wasm_bindgen_828f888c0d3e13b9___JsValue_____wasm_bindgen_828f888c0d3e13b9___sys__Undefined___js_sys_9d9a0597b9bb8a15___Function_fn_wasm_bindgen_828f888c0d3e13b9___JsValue_____wasm_bindgen_828f888c0d3e13b9___sys__Undefined_______true_: (a: number, b: number, c: any, d: any) => void;
767
+ readonly wasm_bindgen_828f888c0d3e13b9___convert__closures_____invoke___wasm_bindgen_828f888c0d3e13b9___JsValue__core_608f92abc48d28da___result__Result_____wasm_bindgen_828f888c0d3e13b9___JsError___true_: (a: number, b: number, c: any) => [number, number];
768
+ readonly wasm_bindgen_828f888c0d3e13b9___convert__closures_____invoke___wasm_bindgen_828f888c0d3e13b9___sys__JsNullable_wgpu_634d2c566364ae16___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_608f92abc48d28da___result__Result_____wasm_bindgen_828f888c0d3e13b9___JsError___true_: (a: number, b: number, c: any) => [number, number];
769
+ readonly wasm_bindgen_828f888c0d3e13b9___convert__closures_____invoke___wasm_bindgen_828f888c0d3e13b9___sys__JsNullable_wgpu_634d2c566364ae16___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_608f92abc48d28da___result__Result_____wasm_bindgen_828f888c0d3e13b9___JsError___true__128: (a: number, b: number, c: any) => [number, number];
770
+ readonly wasm_bindgen_828f888c0d3e13b9___convert__closures_____invoke___wasm_bindgen_828f888c0d3e13b9___sys__JsNullable_wgpu_634d2c566364ae16___backend__webgpu__webgpu_sys__gen_GpuError__GpuError___core_608f92abc48d28da___result__Result_____wasm_bindgen_828f888c0d3e13b9___JsError___true__129: (a: number, b: number, c: any) => [number, number];
771
+ readonly __wbindgen_malloc: (a: number, b: number) => number;
772
+ readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
773
+ readonly __wbindgen_exn_store: (a: number) => void;
774
+ readonly __externref_table_alloc: () => number;
775
+ readonly __wbindgen_externrefs: WebAssembly.Table;
776
+ readonly __wbindgen_free: (a: number, b: number, c: number) => void;
777
+ readonly __wbindgen_destroy_closure: (a: number, b: number) => void;
778
+ readonly __externref_drop_slice: (a: number, b: number) => void;
779
+ readonly __externref_table_dealloc: (a: number) => void;
780
+ readonly __wbindgen_start: () => void;
781
+ }
782
+
783
+ export type SyncInitInput = BufferSource | WebAssembly.Module;
784
+
785
+ /**
786
+ * Instantiates the given `module`, which can either be bytes or
787
+ * a precompiled `WebAssembly.Module`.
788
+ *
789
+ * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
790
+ *
791
+ * @returns {InitOutput}
792
+ */
793
+ export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
794
+
795
+ /**
796
+ * If `module_or_path` is {RequestInfo} or {URL}, makes a request and
797
+ * for everything else, calls `WebAssembly.instantiate` directly.
798
+ *
799
+ * @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
800
+ *
801
+ * @returns {Promise<InitOutput>}
802
+ */
803
+ export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;