@fieldnotes/core 0.65.0 → 0.67.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.
package/dist/index.d.ts CHANGED
@@ -267,7 +267,7 @@ interface Tool {
267
267
  setOptions?(options: object): void;
268
268
  onOptionsChange?(listener: () => void): () => void;
269
269
  }
270
- type ToolName = 'hand' | 'select' | 'pencil' | 'eraser' | 'arrow' | 'note' | 'image' | 'text' | 'shape' | 'measure' | 'path' | 'template' | 'laser' | 'ping';
270
+ type ToolName = 'hand' | 'select' | 'pencil' | 'eraser' | 'arrow' | 'note' | 'image' | 'text' | 'shape' | 'measure' | 'path' | 'template' | 'laser' | 'ping' | 'fog';
271
271
 
272
272
  declare function snapPoint(point: Point, gridSize: number): Point;
273
273
  declare function snapToHexCenter(point: Point, cellSize: number, orientation: HexOrientation): Point;
@@ -341,6 +341,61 @@ interface Layer {
341
341
  opacity: number;
342
342
  }
343
343
 
344
+ declare const FOG_STATE_VERSION = 1;
345
+ declare const FOG_TILE_CELLS = 128;
346
+ declare const FOG_MAX_TILES = 256;
347
+ type FogBase = 'covered' | 'revealed';
348
+ interface FogDefinitionV1 {
349
+ readonly version: 1;
350
+ readonly generation: string;
351
+ readonly bounds: Bounds;
352
+ readonly cellSize: number;
353
+ readonly tileCells: 128;
354
+ readonly base: FogBase;
355
+ }
356
+ interface FogTileV1 {
357
+ readonly x: number;
358
+ readonly y: number;
359
+ readonly data: string;
360
+ }
361
+ interface FogStateV1 {
362
+ readonly definition: FogDefinitionV1;
363
+ readonly tiles: readonly FogTileV1[];
364
+ }
365
+ type FogViewMode = 'off' | 'editor' | 'player';
366
+ type FogOperation = 'reveal' | 'conceal';
367
+ type FogRegion = {
368
+ kind: 'brush';
369
+ points: readonly Point[];
370
+ radius: number;
371
+ } | {
372
+ kind: 'rectangle';
373
+ from: Point;
374
+ to: Point;
375
+ } | {
376
+ kind: 'polygon';
377
+ points: readonly Point[];
378
+ };
379
+ interface FogToolOptions {
380
+ operation?: FogOperation;
381
+ shape?: 'brush' | 'rectangle' | 'polygon';
382
+ radius?: number;
383
+ }
384
+ interface FogPatch {
385
+ readonly tiles: readonly FogTileV1[];
386
+ }
387
+ interface FogChangeEvent {
388
+ readonly kind: 'tiles' | 'definition' | 'reset' | 'disable';
389
+ readonly tiles?: readonly {
390
+ readonly x: number;
391
+ readonly y: number;
392
+ }[];
393
+ readonly origin?: string;
394
+ }
395
+ interface FogViewEvent {
396
+ readonly mode: FogViewMode;
397
+ }
398
+
344
399
  interface CanvasState {
345
400
  version: number;
346
401
  camera: {
@@ -350,6 +405,7 @@ interface CanvasState {
350
405
  elements: CanvasElement[];
351
406
  layers?: Layer[];
352
407
  activeLayerId?: string;
408
+ fog?: FogStateV1;
353
409
  }
354
410
 
355
411
  interface LayerManagerEvents {
@@ -392,6 +448,55 @@ declare class LayerManager {
392
448
  private findFallbackLayer;
393
449
  }
394
450
 
451
+ interface Command {
452
+ execute(store: ElementStore): void;
453
+ undo(store: ElementStore): void;
454
+ }
455
+
456
+ type FogIdFactory = () => string;
457
+ interface FogManagerOptions {
458
+ idFactory?: FogIdFactory;
459
+ onCommand?: (command: Command) => void;
460
+ }
461
+ type ChangeListener = (event: FogChangeEvent) => void;
462
+ type ViewListener = (event: FogViewEvent) => void;
463
+ declare class FogManager {
464
+ private state;
465
+ private viewMode;
466
+ private readonly idFactory;
467
+ private readonly onCommand;
468
+ private readonly changeListeners;
469
+ private readonly viewListeners;
470
+ constructor(options?: FogManagerOptions);
471
+ getState(): FogStateV1 | null;
472
+ getViewMode(): FogViewMode;
473
+ initialize(options: {
474
+ bounds: Bounds;
475
+ base?: FogBase;
476
+ cellSize?: number;
477
+ }): FogStateV1;
478
+ loadState(state: FogStateV1 | null, meta?: {
479
+ origin?: string;
480
+ }): void;
481
+ /** Restores a historical visual state without reusing its causal generation id. */
482
+ restoreHistoryState(state: FogStateV1 | null): void;
483
+ setBounds(bounds: Bounds): void;
484
+ reset(base: FogBase): void;
485
+ disable(): void;
486
+ setViewMode(mode: FogViewMode): void;
487
+ applyRegion(region: FogRegion, operation: FogOperation): void;
488
+ applyPatchDirect(patch: FogPatch, meta?: {
489
+ origin?: string;
490
+ }): void;
491
+ applyTilesDirect(tiles: readonly FogTileV1[]): void;
492
+ on(event: 'change', listener: ChangeListener): () => void;
493
+ on(event: 'view', listener: ViewListener): () => void;
494
+ dispose(): void;
495
+ private collectTiles;
496
+ private notifyChange;
497
+ private notifyView;
498
+ }
499
+
395
500
  interface StorageAdapter {
396
501
  load(key: string): Promise<string | null>;
397
502
  save(key: string, value: string): Promise<void>;
@@ -402,6 +507,7 @@ interface AutoSaveOptions {
402
507
  key?: string;
403
508
  debounceMs?: number;
404
509
  layerManager?: LayerManager;
510
+ fogManager?: FogManager;
405
511
  adapter?: StorageAdapter;
406
512
  onError?: (error: Error) => void;
407
513
  }
@@ -411,6 +517,7 @@ declare class AutoSave {
411
517
  private readonly key;
412
518
  private readonly debounceMs;
413
519
  private readonly layerManager?;
520
+ private readonly fogManager?;
414
521
  private readonly adapter;
415
522
  private timerId;
416
523
  private unsubscribers;
@@ -502,11 +609,6 @@ declare class ToolManager {
502
609
  onRegister(listener: (tool: Tool) => void): () => void;
503
610
  }
504
611
 
505
- interface Command {
506
- execute(store: ElementStore): void;
507
- undo(store: ElementStore): void;
508
- }
509
-
510
612
  interface HistoryStackOptions {
511
613
  maxSize?: number;
512
614
  }
@@ -590,6 +692,42 @@ declare class HtmlPainterRegistry {
590
692
  }
591
693
  declare function resolveHtmlRouting(el: Readonly<HtmlElement>, registry: HtmlPainterRegistry | null, expectedCanvasTypes?: ReadonlySet<string>): HtmlRouting;
592
694
 
695
+ interface FogSolidStyle {
696
+ kind?: 'solid';
697
+ color: string;
698
+ }
699
+ interface FogProceduralStyle {
700
+ kind: 'procedural';
701
+ /** Base fill painted before the noise pattern. Player mode adds an opaque safety layer. */
702
+ backdrop: string;
703
+ /** Canvas-compatible CSS tint mixed into the noise pattern. */
704
+ tint: string;
705
+ /** Overall noise opacity, 0–1. Default `0.6`. */
706
+ opacity?: number;
707
+ /** Pattern scale in world units per tile repeat. 64–1024. Default `256`. */
708
+ scale?: number;
709
+ /** Deterministic seed, 0–65535. Default `0`. */
710
+ seed?: number;
711
+ /** Noise detail / number of octaves, 1–4. Default `2`. */
712
+ detail?: number;
713
+ }
714
+ type FogStyle = FogSolidStyle | FogProceduralStyle;
715
+ interface ResolvedSolidStyle {
716
+ readonly kind: 'solid';
717
+ readonly color: string;
718
+ }
719
+ interface ResolvedProceduralStyle {
720
+ readonly kind: 'procedural';
721
+ readonly backdrop: string;
722
+ readonly tint: string;
723
+ readonly opacity: number;
724
+ readonly scale: number;
725
+ readonly seed: number;
726
+ readonly detail: number;
727
+ }
728
+ type ResolvedFogStyle = ResolvedSolidStyle | ResolvedProceduralStyle;
729
+ declare function resolveFogStyle(style: FogStyle | undefined, legacyColor: string | undefined, defaultColor: string): ResolvedFogStyle;
730
+
593
731
  interface ExportImageOptions extends ExportResourceOptions, HtmlExportOptions {
594
732
  scale?: number;
595
733
  padding?: number;
@@ -635,6 +773,12 @@ interface ExportImageOptions extends ExportResourceOptions, HtmlExportOptions {
635
773
  * a non-fatal `'unsupported'` diagnostic regardless of this flag.
636
774
  */
637
775
  strictMissingCanvasHtml?: boolean;
776
+ fog?: {
777
+ state: FogStateV1;
778
+ mode: 'editor' | 'player';
779
+ color?: string;
780
+ style?: FogStyle;
781
+ } | false;
638
782
  }
639
783
  type ExportAssetErrorReason = 'load' | 'timeout' | 'encode';
640
784
  interface ExportAssetError {
@@ -660,20 +804,15 @@ interface ExportSvgOptions extends ExportResourceOptions, HtmlExportOptions {
660
804
  background?: string;
661
805
  filter?: (el: CanvasElement) => boolean;
662
806
  rasterScale?: number;
663
- /** Registry of canvas-backed html painters, keyed by `htmlType`. When absent (or when
664
- * an element's `htmlType` isn't claimed), html elements fall back to the legacy
665
- * DOM-raster path (`renderHtml`). */
666
807
  htmlPainters?: HtmlPainterRegistry;
667
- /** `htmlType`s that must route to canvas even before a painter for them is
668
- * registered — lets a host declare intent up front (mirrors `HtmlPainterRegistry.expect`). */
669
808
  expectedCanvasTypes?: ReadonlySet<string>;
670
- /**
671
- * When true, a canvas-routed html element with no active painter throws
672
- * `HtmlPainterMissingError` instead of reporting `onHtmlError` and continuing.
673
- * DOM-routed html elements are never affected — a missing `renderHtml` stays
674
- * a non-fatal `'unsupported'` diagnostic regardless of this flag.
675
- */
676
809
  strictMissingCanvasHtml?: boolean;
810
+ fog?: {
811
+ state: FogStateV1;
812
+ mode: 'editor' | 'player';
813
+ color?: string;
814
+ style?: FogStyle;
815
+ } | false;
677
816
  }
678
817
  declare function exportSvg(store: ElementStore, options?: ExportSvgOptions, layerManager?: LayerManager): Promise<string>;
679
818
 
@@ -699,6 +838,41 @@ interface RenderStatsSnapshot {
699
838
  frameCount: number;
700
839
  }
701
840
 
841
+ interface FogRendererOptions {
842
+ editorColor?: string;
843
+ playerColor?: string;
844
+ editorStyle?: FogStyle;
845
+ playerStyle?: FogStyle;
846
+ }
847
+ declare class FogRenderer {
848
+ private tileCache;
849
+ private patternCache;
850
+ private state;
851
+ private viewMode;
852
+ private dirty;
853
+ private readonly editorStyle;
854
+ private readonly playerStyle;
855
+ constructor(options?: FogRendererOptions);
856
+ setState(state: FogStateV1 | null): void;
857
+ setViewMode(mode: FogViewMode): void;
858
+ getState(): FogStateV1 | null;
859
+ getViewMode(): FogViewMode;
860
+ markDirty(): void;
861
+ isDirty(): boolean;
862
+ isVisible(): boolean;
863
+ getResolvedStyle(mode: 'editor' | 'player'): ResolvedFogStyle;
864
+ render(ctx: CanvasRenderingContext2D, camera: Camera, viewportWidth: number, viewportHeight: number, _dpr: number): void;
865
+ renderForExport(ctx: CanvasRenderingContext2D, state: FogStateV1, mode: 'editor' | 'player', color?: string, style?: FogStyle): void;
866
+ dispose(): void;
867
+ private getOrCreatePattern;
868
+ private createPatternFromTileData;
869
+ private paintProceduralOverlay;
870
+ private renderTileProceduralOverlay;
871
+ private tileRaster;
872
+ private renderTile;
873
+ private renderTileForExport;
874
+ }
875
+
702
876
  /**
703
877
  * A world-space draw callback rendered above elements on every frame,
704
878
  * regardless of which tool is active. The context arrives with the camera
@@ -789,6 +963,8 @@ interface ViewportOptions {
789
963
  panInertia?: boolean;
790
964
  /** Show an overview minimap (bottom-right) with tap/drag-to-navigate. Default `false`. */
791
965
  minimap?: boolean;
966
+ /** Fog-of-war presentation options. Enables fog rendering and the `fog` accessor. */
967
+ fog?: FogRendererOptions;
792
968
  }
793
969
  interface HitTestOptions {
794
970
  /** Skip elements on locked layers. Default `true` (selection semantics). */
@@ -825,6 +1001,8 @@ declare class Viewport {
825
1001
  private _smartGuides;
826
1002
  private readonly _gridSize;
827
1003
  private readonly renderLoop;
1004
+ private readonly fogManager;
1005
+ private readonly fogRenderer;
828
1006
  private readonly domNodeManager;
829
1007
  private readonly interactMode;
830
1008
  private readonly onHtmlElementMount?;
@@ -850,6 +1028,7 @@ declare class Viewport {
850
1028
  private unsubRecorderEnd;
851
1029
  constructor(container: HTMLElement, options?: ViewportOptions);
852
1030
  get ctx(): CanvasRenderingContext2D | null;
1031
+ get fog(): FogManager;
853
1032
  get snapToGrid(): boolean;
854
1033
  setSnapToGrid(enabled: boolean): void;
855
1034
  get smartGuides(): boolean;
@@ -907,6 +1086,11 @@ declare class Viewport {
907
1086
  * can only add expectations, never shrink the registry's own.
908
1087
  */
909
1088
  private withHtmlDefaults;
1089
+ /**
1090
+ * Carry constructor-configured fog presentation into both implicit exports and
1091
+ * explicit state/mode exports. Explicit style and legacy color overrides win.
1092
+ */
1093
+ private withFogDefaults;
910
1094
  exportImage(options?: ExportImageOptions): Promise<Blob | null>;
911
1095
  exportSVG(options?: ExportSvgOptions): Promise<string>;
912
1096
  loadState(state: CanvasState): void;
@@ -2087,6 +2271,8 @@ declare class MinimapController {
2087
2271
  private readonly renderer;
2088
2272
  private readonly htmlPainters;
2089
2273
  private scene;
2274
+ private fogRenderer;
2275
+ private fogUnsub;
2090
2276
  private frameId;
2091
2277
  private debounceTimer;
2092
2278
  private dragging;
@@ -2094,6 +2280,7 @@ declare class MinimapController {
2094
2280
  private readonly unsubs;
2095
2281
  constructor(viewport: Viewport, canvas: HTMLCanvasElement, options?: MinimapControllerOptions);
2096
2282
  setSize(width: number, height: number): void;
2283
+ setFogRenderer(renderer: FogRenderer | null): void;
2097
2284
  requestDraw(): void;
2098
2285
  /**
2099
2286
  * Invalidates the cached scene bitmap in response to html-painter registry
@@ -3039,6 +3226,43 @@ declare class TemplateTool implements Tool {
3039
3226
  private notifyOptionsChange;
3040
3227
  }
3041
3228
 
3042
- declare const VERSION = "0.65.0";
3229
+ declare function encodeBase64(bytes: Uint8Array): string;
3230
+ declare function decodeBase64(str: string): Uint8Array;
3231
+ declare function canonicalizeFogTile(tile: FogTileV1, def: FogDefinitionV1): FogTileV1 | null;
3232
+ declare function validateFogDefinition(def: unknown): asserts def is FogDefinitionV1;
3233
+ declare function validateFogTile(tile: unknown, def: FogDefinitionV1): asserts tile is FogTileV1;
3234
+ declare function validateFogState(state: unknown): asserts state is FogStateV1;
3235
+ declare function recommendedFogCellSize(bounds: Bounds): number;
3236
+
3237
+ declare class FogTool implements Tool {
3238
+ readonly name = "fog";
3239
+ private drawing;
3240
+ private points;
3241
+ private startPoint;
3242
+ private operation;
3243
+ private shape;
3244
+ private radius;
3245
+ private readonly manager;
3246
+ private optionListeners;
3247
+ constructor(manager: FogManager, options?: FogToolOptions);
3248
+ onActivate(ctx: ToolContext): void;
3249
+ onDeactivate(ctx: ToolContext): void;
3250
+ getOptions(): FogToolOptions;
3251
+ setOptions(options: FogToolOptions): void;
3252
+ onOptionsChange(listener: () => void): () => void;
3253
+ onPointerDown(state: PointerState, ctx: ToolContext): void;
3254
+ onPointerMove(state: PointerState, ctx: ToolContext): void;
3255
+ onPointerUp(_state: PointerState, ctx: ToolContext): void;
3256
+ onPointerCancel(_state: PointerState, ctx: ToolContext): void;
3257
+ onKeyDown(event: KeyboardEvent, ctx: ToolContext): boolean;
3258
+ renderOverlay(ctx: CanvasRenderingContext2D): void;
3259
+ private buildRegion;
3260
+ private cancelGesture;
3261
+ private renderBrushPreview;
3262
+ private renderRectanglePreview;
3263
+ private renderPolygonPreview;
3264
+ }
3265
+
3266
+ declare const VERSION = "0.67.0";
3043
3267
 
3044
- export { AWARENESS_MAX_SELECTION, AWARENESS_PRESENCE_KIND, type ActivationOptions, type ActiveFormats, type AlignEdge, type ArrowElement, type ArrowStrokeStyle, ArrowTool, type ArrowToolOptions, type AttachAwarenessOptions, AutoSave, type AutoSaveOptions, type AwarenessFields, type AwarenessHandle, type AwarenessIdentity, type AwarenessPresence, type AwarenessViewport, type BackgroundOptions, type BackgroundPattern, type Binding, type Bounds, Camera, type CameraAnimationEndReason, CameraAnimator, type CameraAnimatorOptions, type CameraChangeInfo, type CameraOptions, type CameraView, type CanvasElement, type CanvasState, type Command, DEFAULT_NOTE_FONT_SIZE, type DiagonalRule, type DistributeAxis, type ElementActivationEvent, type ElementChangeMeta, type ElementRect, type ElementRectMatch, type ElementRectMatchError, ElementRectTracker, type ElementRectTrackerOptions, ElementStore, type ElementStyle, type ElementType, type ElementUpdateEvent, EraserTool, type EraserToolOptions, type ExportAssetError, type ExportAssetErrorReason, type ExportImageOptions, type ExportResourceOptions, type ExportSvgOptions, FOCUS_PRESENCE_KIND, type FocusAudience, type FocusPresence, type FocusRole, type FontSizePreset, type Footprint, type FrameScheduler, type GridElement, type GridInfo, type GridMetric, HandTool, type HexOrientation, HistoryStack, type HistoryStackOptions, type HitTestOptions, type HtmlElement, type HtmlExportError, type HtmlExportErrorReason, type HtmlExportOptions, type HtmlExportRenderer, type HtmlPaintContext, type HtmlPaintDiagnostic, type HtmlPainter, HtmlPainterMissingError, HtmlPainterRegistry, type HtmlRenderTarget, type HtmlRouting, type ImageElement, ImageTool, type ImageToolOptions, IndexedDBAdapter, type IndexedDBAdapterOptions, LASER_TRAIL_PRESENCE_KIND, LaserTool, type LaserToolOptions, type LaserTrailEmission, type LaserTrailPresence, type Layer, LayerManager, LocalAwareness, type LocalAwarenessHost, type LocalAwarenessOptions, LocalStorageAdapter, MEASURE_PRESENCE_KIND, type MeasureEmission, type MeasurePresence, MeasureTool, type MeasureToolOptions, type Measurement, MemoryAdapter, MinimapController, type MinimapControllerOptions, type NoteElement, NoteTool, type NoteToolOptions, type OverlayRenderer, PATH_PRESENCE_KIND, PATH_PRESENCE_MAX_POINTS, PEER_COLORS, PING_PRESENCE_KIND, type PathAnchor, type PathDistance, type PathEmission, type PathPresence, type PathRangeBand, type PathSegment, PathTool, type PathToolOptions, type Peer, type PeerLeaveReason, PeerRoster, type PeerRosterOptions, PencilTool, type PencilToolOptions, type PingEmission, PingInput, type PingInputHost, type PingInputOptions, type PingPresence, PingTool, type PingToolOptions, type Point, type PointerState, type PresenceChannel, type RectTrackerHost, RemoteCursorOverlay, type RemoteCursorOverlayHost, type RemoteCursorOverlayOptions, RemoteFocusReceiver, type RemoteFocusReceiverHost, type RemoteFocusReceiverOptions, RemoteLaserOverlay, type RemoteLaserOverlayHost, type RemoteLaserOverlayOptions, RemoteMeasureOverlay, type RemoteMeasureOverlayHost, type RemoteMeasureOverlayOptions, RemotePathOverlay, type RemotePathOverlayHost, type RemotePathOverlayOptions, RemotePingOverlay, type RemotePingOverlayHost, type RemotePingOverlayOptions, RemoteSelectionOverlay, type RemoteSelectionOverlayHost, type RemoteSelectionOverlayOptions, type RenderStatsSnapshot, type RotateDirection, SelectTool, type SelectionStyleDetails, type ShapeElement, type ShapeKind, ShapeTool, type ShapeToolOptions, type ShortcutBindings, type ShortcutOptions, type ShortcutsApi, type Size, type StorageAdapter, type StrokeElement, type StrokePoint, type TemplateElement, type TemplateRenderStyle, type TemplateShape, TemplateTool, type TemplateToolOptions, type TextElement, TextTool, type TextToolOptions, type Tool, type ToolContext, ToolManager, type ToolName, VERSION, Viewport, type ViewportOptions, applyCameraView, attachAwareness, boundsIntersect, cameraOriginForView, captureCameraView, computeElementRects, createArrow, createGrid, createHtmlElement, createImage, createNote, createShape, createStroke, createTemplate, createText, defaultPeerColor, drawHexPath, elementRectsEqual, exportImage, exportSvg, fitZoomForView, footprintFromSize, getActiveFormats, getArrowBounds, getArrowControlPoint, getArrowMidpoint, getArrowTangentAngle, getBendFromPoint, getElementBounds, getElementStyle, getElementsBoundingBox, getHexCellsInCone, getHexCellsInLine, getHexCellsInRadius, getHexCellsInRectangle, getHexCellsInSquare, getHexDistance, gridDistanceCells, isAwarenessPresence, isFocusPresence, isLaserTrailPresence, isMeasurePresence, isNearBezier, isPathPresence, isPingPresence, pathDistanceCells, resolveHtmlRouting, setFontSize, smartSnap, snapFootprintCenter, snapPoint, snapToCellCenter, snapToHexCenter, styleToPatch, toFocusPresence, toLaserTrailPresence, toMeasurePresence, toPathPresence, toPingPresence, toggleBold, toggleItalic, toggleStrikethrough, toggleUnderline };
3268
+ export { AWARENESS_MAX_SELECTION, AWARENESS_PRESENCE_KIND, type ActivationOptions, type ActiveFormats, type AlignEdge, type ArrowElement, type ArrowStrokeStyle, ArrowTool, type ArrowToolOptions, type AttachAwarenessOptions, AutoSave, type AutoSaveOptions, type AwarenessFields, type AwarenessHandle, type AwarenessIdentity, type AwarenessPresence, type AwarenessViewport, type BackgroundOptions, type BackgroundPattern, type Binding, type Bounds, Camera, type CameraAnimationEndReason, CameraAnimator, type CameraAnimatorOptions, type CameraChangeInfo, type CameraOptions, type CameraView, type CanvasElement, type CanvasState, type Command, DEFAULT_NOTE_FONT_SIZE, type DiagonalRule, type DistributeAxis, type ElementActivationEvent, type ElementChangeMeta, type ElementRect, type ElementRectMatch, type ElementRectMatchError, ElementRectTracker, type ElementRectTrackerOptions, ElementStore, type ElementStyle, type ElementType, type ElementUpdateEvent, EraserTool, type EraserToolOptions, type ExportAssetError, type ExportAssetErrorReason, type ExportImageOptions, type ExportResourceOptions, type ExportSvgOptions, FOCUS_PRESENCE_KIND, FOG_MAX_TILES, FOG_STATE_VERSION, FOG_TILE_CELLS, type FocusAudience, type FocusPresence, type FocusRole, type FogBase, type FogChangeEvent, type FogDefinitionV1, type FogIdFactory, FogManager, type FogManagerOptions, type FogOperation, type FogPatch, type FogProceduralStyle, type FogRegion, FogRenderer, type FogRendererOptions, type FogSolidStyle, type FogStateV1, type FogStyle, type FogTileV1, FogTool, type FogToolOptions, type FogViewEvent, type FogViewMode, type FontSizePreset, type Footprint, type FrameScheduler, type GridElement, type GridInfo, type GridMetric, HandTool, type HexOrientation, HistoryStack, type HistoryStackOptions, type HitTestOptions, type HtmlElement, type HtmlExportError, type HtmlExportErrorReason, type HtmlExportOptions, type HtmlExportRenderer, type HtmlPaintContext, type HtmlPaintDiagnostic, type HtmlPainter, HtmlPainterMissingError, HtmlPainterRegistry, type HtmlRenderTarget, type HtmlRouting, type ImageElement, ImageTool, type ImageToolOptions, IndexedDBAdapter, type IndexedDBAdapterOptions, LASER_TRAIL_PRESENCE_KIND, LaserTool, type LaserToolOptions, type LaserTrailEmission, type LaserTrailPresence, type Layer, LayerManager, LocalAwareness, type LocalAwarenessHost, type LocalAwarenessOptions, LocalStorageAdapter, MEASURE_PRESENCE_KIND, type MeasureEmission, type MeasurePresence, MeasureTool, type MeasureToolOptions, type Measurement, MemoryAdapter, MinimapController, type MinimapControllerOptions, type NoteElement, NoteTool, type NoteToolOptions, type OverlayRenderer, PATH_PRESENCE_KIND, PATH_PRESENCE_MAX_POINTS, PEER_COLORS, PING_PRESENCE_KIND, type PathAnchor, type PathDistance, type PathEmission, type PathPresence, type PathRangeBand, type PathSegment, PathTool, type PathToolOptions, type Peer, type PeerLeaveReason, PeerRoster, type PeerRosterOptions, PencilTool, type PencilToolOptions, type PingEmission, PingInput, type PingInputHost, type PingInputOptions, type PingPresence, PingTool, type PingToolOptions, type Point, type PointerState, type PresenceChannel, type RectTrackerHost, RemoteCursorOverlay, type RemoteCursorOverlayHost, type RemoteCursorOverlayOptions, RemoteFocusReceiver, type RemoteFocusReceiverHost, type RemoteFocusReceiverOptions, RemoteLaserOverlay, type RemoteLaserOverlayHost, type RemoteLaserOverlayOptions, RemoteMeasureOverlay, type RemoteMeasureOverlayHost, type RemoteMeasureOverlayOptions, RemotePathOverlay, type RemotePathOverlayHost, type RemotePathOverlayOptions, RemotePingOverlay, type RemotePingOverlayHost, type RemotePingOverlayOptions, RemoteSelectionOverlay, type RemoteSelectionOverlayHost, type RemoteSelectionOverlayOptions, type RenderStatsSnapshot, type ResolvedFogStyle, type ResolvedProceduralStyle, type ResolvedSolidStyle, type RotateDirection, SelectTool, type SelectionStyleDetails, type ShapeElement, type ShapeKind, ShapeTool, type ShapeToolOptions, type ShortcutBindings, type ShortcutOptions, type ShortcutsApi, type Size, type StorageAdapter, type StrokeElement, type StrokePoint, type TemplateElement, type TemplateRenderStyle, type TemplateShape, TemplateTool, type TemplateToolOptions, type TextElement, TextTool, type TextToolOptions, type Tool, type ToolContext, ToolManager, type ToolName, VERSION, Viewport, type ViewportOptions, applyCameraView, attachAwareness, boundsIntersect, cameraOriginForView, canonicalizeFogTile, captureCameraView, computeElementRects, createArrow, createGrid, createHtmlElement, createImage, createNote, createShape, createStroke, createTemplate, createText, defaultPeerColor, drawHexPath, elementRectsEqual, exportImage, exportSvg, fitZoomForView, decodeBase64 as fogDecodeBase64, encodeBase64 as fogEncodeBase64, footprintFromSize, getActiveFormats, getArrowBounds, getArrowControlPoint, getArrowMidpoint, getArrowTangentAngle, getBendFromPoint, getElementBounds, getElementStyle, getElementsBoundingBox, getHexCellsInCone, getHexCellsInLine, getHexCellsInRadius, getHexCellsInRectangle, getHexCellsInSquare, getHexDistance, gridDistanceCells, isAwarenessPresence, isFocusPresence, isLaserTrailPresence, isMeasurePresence, isNearBezier, isPathPresence, isPingPresence, pathDistanceCells, recommendedFogCellSize, resolveFogStyle, resolveHtmlRouting, setFontSize, smartSnap, snapFootprintCenter, snapPoint, snapToCellCenter, snapToHexCenter, styleToPatch, toFocusPresence, toLaserTrailPresence, toMeasurePresence, toPathPresence, toPingPresence, toggleBold, toggleItalic, toggleStrikethrough, toggleUnderline, validateFogDefinition, validateFogState, validateFogTile };