@fieldnotes/core 0.57.0 → 0.59.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.cts CHANGED
@@ -469,6 +469,32 @@ interface ExportImageOptions extends ExportResourceOptions, HtmlExportOptions {
469
469
  padding?: number;
470
470
  background?: string;
471
471
  filter?: (element: CanvasElement) => boolean;
472
+ /**
473
+ * Optional world-space crop. When set it replaces the computed content
474
+ * bounds; `padding` still applies around it. Elements outside the region
475
+ * clip naturally. A region export with no intersecting elements still
476
+ * produces a background-filled image.
477
+ */
478
+ region?: {
479
+ x: number;
480
+ y: number;
481
+ w: number;
482
+ h: number;
483
+ };
484
+ /**
485
+ * Output encoding. Defaults to 'png'. JPEG output is opaque — a transparent
486
+ * `background` renders as black; keep the default `#ffffff` (or any opaque color)
487
+ * for JPEG exports.
488
+ */
489
+ format?: 'png' | 'jpeg';
490
+ /** Encoder quality in (0, 1]. Only meaningful for 'jpeg'. */
491
+ quality?: number;
492
+ /**
493
+ * 'exact' (default) throws when scale × bounds exceeds maxDimension/maxPixels.
494
+ * 'fit' reduces the effective scale to the largest value that satisfies both
495
+ * caps (never above the requested scale).
496
+ */
497
+ scaleMode?: 'exact' | 'fit';
472
498
  }
473
499
  type ExportAssetErrorReason = 'load' | 'timeout' | 'encode';
474
500
  interface ExportAssetError {
@@ -610,6 +636,7 @@ declare class Viewport {
610
636
  private contextMenu;
611
637
  private minimap;
612
638
  private readonly htmlRenderers;
639
+ private readonly resizeListeners;
613
640
  constructor(container: HTMLElement, options?: ViewportOptions);
614
641
  get ctx(): CanvasRenderingContext2D | null;
615
642
  get snapToGrid(): boolean;
@@ -617,6 +644,16 @@ declare class Viewport {
617
644
  get smartGuides(): boolean;
618
645
  setSmartGuides(enabled: boolean): void;
619
646
  fitToContent(padding?: number): void;
647
+ /** World-space rectangle currently visible through the canvas. */
648
+ getVisibleRect(): Bounds;
649
+ /** Centers the camera on a world point without changing zoom. */
650
+ centerCameraAt(world: Point): void;
651
+ /**
652
+ * Notifies after the host container resizes (ResizeObserver-driven). A resize
653
+ * changes the visible world rect without a camera event; overlays such as the
654
+ * minimap subscribe to stay current. Returns an idempotent unsubscribe.
655
+ */
656
+ onResize(listener: () => void): () => void;
620
657
  requestRender(): void;
621
658
  /**
622
659
  * Registers a world-space overlay drawn above elements on every frame,
@@ -1245,6 +1282,74 @@ declare class PingInput {
1245
1282
  private emit;
1246
1283
  }
1247
1284
 
1285
+ interface MinimapControllerOptions {
1286
+ /** Minimap width in CSS pixels. Default `200`. */
1287
+ width?: number;
1288
+ /** Minimap height in CSS pixels. Default `140`. */
1289
+ height?: number;
1290
+ /** Content inset inside the minimap, in minimap pixels. Default `8`. */
1291
+ padding?: number;
1292
+ /** Backdrop fill behind the thumbnail. Default: none (transparent). */
1293
+ background?: string;
1294
+ /** Stroke color of the viewport rectangle. Default `'#3b82f6'`. */
1295
+ viewportStroke?: string;
1296
+ /** Trailing debounce for scene bitmap re-renders. Default `200`. */
1297
+ debounceMs?: number;
1298
+ /** Tap/drag-to-center navigation on the canvas. Default `true`. */
1299
+ interactive?: boolean;
1300
+ /** Frame scheduler; default `requestAnimationFrame`. Injected by tests. */
1301
+ requestFrame?: (cb: () => void) => number;
1302
+ /** Frame canceller; default `cancelAnimationFrame`. Injected by tests. */
1303
+ cancelFrame?: (id: number) => void;
1304
+ }
1305
+ /**
1306
+ * Thumbnail overview navigator: renders the scene (real element shapes,
1307
+ * downscaled images, per-layer opacity compositing) into a cached offscreen
1308
+ * bitmap, composites it with the live viewport rectangle each frame, and
1309
+ * centers the camera on tap/drag. The cached bitmap and its transform swap
1310
+ * atomically: camera motion never renders the scene, only re-composites.
1311
+ */
1312
+ declare class MinimapController {
1313
+ private readonly viewport;
1314
+ private readonly canvas;
1315
+ private width;
1316
+ private height;
1317
+ private readonly padding;
1318
+ private readonly background;
1319
+ private readonly viewportStroke;
1320
+ private readonly debounceMs;
1321
+ private readonly interactive;
1322
+ private readonly requestFrame;
1323
+ private readonly cancelFrame;
1324
+ private readonly renderer;
1325
+ private scene;
1326
+ private frameId;
1327
+ private debounceTimer;
1328
+ private dragging;
1329
+ private disposed;
1330
+ private readonly unsubs;
1331
+ constructor(viewport: Viewport, canvas: HTMLCanvasElement, options?: MinimapControllerOptions);
1332
+ setSize(width: number, height: number): void;
1333
+ requestDraw(): void;
1334
+ dispose(): void;
1335
+ private clearDebounce;
1336
+ private dpr;
1337
+ private applyCanvasSize;
1338
+ private sceneElements;
1339
+ private currentMapping;
1340
+ private onViewChanged;
1341
+ private markSceneDirty;
1342
+ private renderScene;
1343
+ private renderLayerElements;
1344
+ private draw;
1345
+ private navTransform;
1346
+ private navigateFromEvent;
1347
+ private onPointerDown;
1348
+ private onPointerMove;
1349
+ private onPointerUp;
1350
+ private onPointerEnd;
1351
+ }
1352
+
1248
1353
  interface ActiveFormats {
1249
1354
  bold: boolean;
1250
1355
  italic: boolean;
@@ -1650,6 +1755,6 @@ declare class TemplateTool implements Tool {
1650
1755
  private notifyOptionsChange;
1651
1756
  }
1652
1757
 
1653
- declare const VERSION = "0.57.0";
1758
+ declare const VERSION = "0.59.0";
1654
1759
 
1655
- export { type ActiveFormats, type AlignEdge, type ArrowElement, type ArrowStrokeStyle, ArrowTool, type ArrowToolOptions, AutoSave, type AutoSaveOptions, type BackgroundOptions, type BackgroundPattern, type Binding, type Bounds, Camera, type CameraChangeInfo, type CameraOptions, type CanvasElement, type CanvasState, type Command, DEFAULT_NOTE_FONT_SIZE, type DistributeAxis, type ElementChangeMeta, ElementStore, type ElementStyle, type ElementType, type ElementUpdateEvent, EraserTool, type EraserToolOptions, type ExportAssetError, type ExportAssetErrorReason, type ExportImageOptions, type ExportResourceOptions, type ExportSvgOptions, type FontSizePreset, type GridElement, type GridInfo, HandTool, type HexOrientation, HistoryStack, type HistoryStackOptions, type HtmlElement, type HtmlExportError, type HtmlExportErrorReason, type HtmlExportOptions, type HtmlExportRenderer, type ImageElement, ImageTool, type ImageToolOptions, IndexedDBAdapter, type IndexedDBAdapterOptions, LASER_TRAIL_PRESENCE_KIND, LaserTool, type LaserToolOptions, type LaserTrailEmission, type LaserTrailPresence, type Layer, LayerManager, LocalStorageAdapter, MEASURE_PRESENCE_KIND, type MeasureEmission, type MeasurePresence, MeasureTool, type MeasureToolOptions, type Measurement, MemoryAdapter, type NoteElement, NoteTool, type NoteToolOptions, type OverlayRenderer, PING_PRESENCE_KIND, PencilTool, type PencilToolOptions, type PingEmission, PingInput, type PingInputHost, type PingInputOptions, type PingPresence, PingTool, type PingToolOptions, type Point, type PointerState, RemoteLaserOverlay, type RemoteLaserOverlayHost, type RemoteLaserOverlayOptions, RemoteMeasureOverlay, type RemoteMeasureOverlayHost, type RemoteMeasureOverlayOptions, RemotePingOverlay, type RemotePingOverlayHost, type RemotePingOverlayOptions, type RenderStatsSnapshot, type RotateDirection, SelectTool, 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, boundsIntersect, createArrow, createGrid, createHtmlElement, createImage, createNote, createShape, createStroke, createTemplate, createText, drawHexPath, exportImage, exportSvg, getActiveFormats, getArrowBounds, getArrowControlPoint, getArrowMidpoint, getArrowTangentAngle, getBendFromPoint, getElementBounds, getElementStyle, getElementsBoundingBox, getHexCellsInCone, getHexCellsInLine, getHexCellsInRadius, getHexCellsInRectangle, getHexCellsInSquare, getHexDistance, isLaserTrailPresence, isMeasurePresence, isNearBezier, isPingPresence, setFontSize, smartSnap, snapPoint, snapToHexCenter, styleToPatch, toLaserTrailPresence, toMeasurePresence, toPingPresence, toggleBold, toggleItalic, toggleStrikethrough, toggleUnderline };
1760
+ export { type ActiveFormats, type AlignEdge, type ArrowElement, type ArrowStrokeStyle, ArrowTool, type ArrowToolOptions, AutoSave, type AutoSaveOptions, type BackgroundOptions, type BackgroundPattern, type Binding, type Bounds, Camera, type CameraChangeInfo, type CameraOptions, type CanvasElement, type CanvasState, type Command, DEFAULT_NOTE_FONT_SIZE, type DistributeAxis, type ElementChangeMeta, ElementStore, type ElementStyle, type ElementType, type ElementUpdateEvent, EraserTool, type EraserToolOptions, type ExportAssetError, type ExportAssetErrorReason, type ExportImageOptions, type ExportResourceOptions, type ExportSvgOptions, type FontSizePreset, type GridElement, type GridInfo, HandTool, type HexOrientation, HistoryStack, type HistoryStackOptions, type HtmlElement, type HtmlExportError, type HtmlExportErrorReason, type HtmlExportOptions, type HtmlExportRenderer, type ImageElement, ImageTool, type ImageToolOptions, IndexedDBAdapter, type IndexedDBAdapterOptions, LASER_TRAIL_PRESENCE_KIND, LaserTool, type LaserToolOptions, type LaserTrailEmission, type LaserTrailPresence, type Layer, LayerManager, LocalStorageAdapter, MEASURE_PRESENCE_KIND, type MeasureEmission, type MeasurePresence, MeasureTool, type MeasureToolOptions, type Measurement, MemoryAdapter, MinimapController, type MinimapControllerOptions, type NoteElement, NoteTool, type NoteToolOptions, type OverlayRenderer, PING_PRESENCE_KIND, PencilTool, type PencilToolOptions, type PingEmission, PingInput, type PingInputHost, type PingInputOptions, type PingPresence, PingTool, type PingToolOptions, type Point, type PointerState, RemoteLaserOverlay, type RemoteLaserOverlayHost, type RemoteLaserOverlayOptions, RemoteMeasureOverlay, type RemoteMeasureOverlayHost, type RemoteMeasureOverlayOptions, RemotePingOverlay, type RemotePingOverlayHost, type RemotePingOverlayOptions, type RenderStatsSnapshot, type RotateDirection, SelectTool, 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, boundsIntersect, createArrow, createGrid, createHtmlElement, createImage, createNote, createShape, createStroke, createTemplate, createText, drawHexPath, exportImage, exportSvg, getActiveFormats, getArrowBounds, getArrowControlPoint, getArrowMidpoint, getArrowTangentAngle, getBendFromPoint, getElementBounds, getElementStyle, getElementsBoundingBox, getHexCellsInCone, getHexCellsInLine, getHexCellsInRadius, getHexCellsInRectangle, getHexCellsInSquare, getHexDistance, isLaserTrailPresence, isMeasurePresence, isNearBezier, isPingPresence, setFontSize, smartSnap, snapPoint, snapToHexCenter, styleToPatch, toLaserTrailPresence, toMeasurePresence, toPingPresence, toggleBold, toggleItalic, toggleStrikethrough, toggleUnderline };
package/dist/index.d.ts CHANGED
@@ -469,6 +469,32 @@ interface ExportImageOptions extends ExportResourceOptions, HtmlExportOptions {
469
469
  padding?: number;
470
470
  background?: string;
471
471
  filter?: (element: CanvasElement) => boolean;
472
+ /**
473
+ * Optional world-space crop. When set it replaces the computed content
474
+ * bounds; `padding` still applies around it. Elements outside the region
475
+ * clip naturally. A region export with no intersecting elements still
476
+ * produces a background-filled image.
477
+ */
478
+ region?: {
479
+ x: number;
480
+ y: number;
481
+ w: number;
482
+ h: number;
483
+ };
484
+ /**
485
+ * Output encoding. Defaults to 'png'. JPEG output is opaque — a transparent
486
+ * `background` renders as black; keep the default `#ffffff` (or any opaque color)
487
+ * for JPEG exports.
488
+ */
489
+ format?: 'png' | 'jpeg';
490
+ /** Encoder quality in (0, 1]. Only meaningful for 'jpeg'. */
491
+ quality?: number;
492
+ /**
493
+ * 'exact' (default) throws when scale × bounds exceeds maxDimension/maxPixels.
494
+ * 'fit' reduces the effective scale to the largest value that satisfies both
495
+ * caps (never above the requested scale).
496
+ */
497
+ scaleMode?: 'exact' | 'fit';
472
498
  }
473
499
  type ExportAssetErrorReason = 'load' | 'timeout' | 'encode';
474
500
  interface ExportAssetError {
@@ -610,6 +636,7 @@ declare class Viewport {
610
636
  private contextMenu;
611
637
  private minimap;
612
638
  private readonly htmlRenderers;
639
+ private readonly resizeListeners;
613
640
  constructor(container: HTMLElement, options?: ViewportOptions);
614
641
  get ctx(): CanvasRenderingContext2D | null;
615
642
  get snapToGrid(): boolean;
@@ -617,6 +644,16 @@ declare class Viewport {
617
644
  get smartGuides(): boolean;
618
645
  setSmartGuides(enabled: boolean): void;
619
646
  fitToContent(padding?: number): void;
647
+ /** World-space rectangle currently visible through the canvas. */
648
+ getVisibleRect(): Bounds;
649
+ /** Centers the camera on a world point without changing zoom. */
650
+ centerCameraAt(world: Point): void;
651
+ /**
652
+ * Notifies after the host container resizes (ResizeObserver-driven). A resize
653
+ * changes the visible world rect without a camera event; overlays such as the
654
+ * minimap subscribe to stay current. Returns an idempotent unsubscribe.
655
+ */
656
+ onResize(listener: () => void): () => void;
620
657
  requestRender(): void;
621
658
  /**
622
659
  * Registers a world-space overlay drawn above elements on every frame,
@@ -1245,6 +1282,74 @@ declare class PingInput {
1245
1282
  private emit;
1246
1283
  }
1247
1284
 
1285
+ interface MinimapControllerOptions {
1286
+ /** Minimap width in CSS pixels. Default `200`. */
1287
+ width?: number;
1288
+ /** Minimap height in CSS pixels. Default `140`. */
1289
+ height?: number;
1290
+ /** Content inset inside the minimap, in minimap pixels. Default `8`. */
1291
+ padding?: number;
1292
+ /** Backdrop fill behind the thumbnail. Default: none (transparent). */
1293
+ background?: string;
1294
+ /** Stroke color of the viewport rectangle. Default `'#3b82f6'`. */
1295
+ viewportStroke?: string;
1296
+ /** Trailing debounce for scene bitmap re-renders. Default `200`. */
1297
+ debounceMs?: number;
1298
+ /** Tap/drag-to-center navigation on the canvas. Default `true`. */
1299
+ interactive?: boolean;
1300
+ /** Frame scheduler; default `requestAnimationFrame`. Injected by tests. */
1301
+ requestFrame?: (cb: () => void) => number;
1302
+ /** Frame canceller; default `cancelAnimationFrame`. Injected by tests. */
1303
+ cancelFrame?: (id: number) => void;
1304
+ }
1305
+ /**
1306
+ * Thumbnail overview navigator: renders the scene (real element shapes,
1307
+ * downscaled images, per-layer opacity compositing) into a cached offscreen
1308
+ * bitmap, composites it with the live viewport rectangle each frame, and
1309
+ * centers the camera on tap/drag. The cached bitmap and its transform swap
1310
+ * atomically: camera motion never renders the scene, only re-composites.
1311
+ */
1312
+ declare class MinimapController {
1313
+ private readonly viewport;
1314
+ private readonly canvas;
1315
+ private width;
1316
+ private height;
1317
+ private readonly padding;
1318
+ private readonly background;
1319
+ private readonly viewportStroke;
1320
+ private readonly debounceMs;
1321
+ private readonly interactive;
1322
+ private readonly requestFrame;
1323
+ private readonly cancelFrame;
1324
+ private readonly renderer;
1325
+ private scene;
1326
+ private frameId;
1327
+ private debounceTimer;
1328
+ private dragging;
1329
+ private disposed;
1330
+ private readonly unsubs;
1331
+ constructor(viewport: Viewport, canvas: HTMLCanvasElement, options?: MinimapControllerOptions);
1332
+ setSize(width: number, height: number): void;
1333
+ requestDraw(): void;
1334
+ dispose(): void;
1335
+ private clearDebounce;
1336
+ private dpr;
1337
+ private applyCanvasSize;
1338
+ private sceneElements;
1339
+ private currentMapping;
1340
+ private onViewChanged;
1341
+ private markSceneDirty;
1342
+ private renderScene;
1343
+ private renderLayerElements;
1344
+ private draw;
1345
+ private navTransform;
1346
+ private navigateFromEvent;
1347
+ private onPointerDown;
1348
+ private onPointerMove;
1349
+ private onPointerUp;
1350
+ private onPointerEnd;
1351
+ }
1352
+
1248
1353
  interface ActiveFormats {
1249
1354
  bold: boolean;
1250
1355
  italic: boolean;
@@ -1650,6 +1755,6 @@ declare class TemplateTool implements Tool {
1650
1755
  private notifyOptionsChange;
1651
1756
  }
1652
1757
 
1653
- declare const VERSION = "0.57.0";
1758
+ declare const VERSION = "0.59.0";
1654
1759
 
1655
- export { type ActiveFormats, type AlignEdge, type ArrowElement, type ArrowStrokeStyle, ArrowTool, type ArrowToolOptions, AutoSave, type AutoSaveOptions, type BackgroundOptions, type BackgroundPattern, type Binding, type Bounds, Camera, type CameraChangeInfo, type CameraOptions, type CanvasElement, type CanvasState, type Command, DEFAULT_NOTE_FONT_SIZE, type DistributeAxis, type ElementChangeMeta, ElementStore, type ElementStyle, type ElementType, type ElementUpdateEvent, EraserTool, type EraserToolOptions, type ExportAssetError, type ExportAssetErrorReason, type ExportImageOptions, type ExportResourceOptions, type ExportSvgOptions, type FontSizePreset, type GridElement, type GridInfo, HandTool, type HexOrientation, HistoryStack, type HistoryStackOptions, type HtmlElement, type HtmlExportError, type HtmlExportErrorReason, type HtmlExportOptions, type HtmlExportRenderer, type ImageElement, ImageTool, type ImageToolOptions, IndexedDBAdapter, type IndexedDBAdapterOptions, LASER_TRAIL_PRESENCE_KIND, LaserTool, type LaserToolOptions, type LaserTrailEmission, type LaserTrailPresence, type Layer, LayerManager, LocalStorageAdapter, MEASURE_PRESENCE_KIND, type MeasureEmission, type MeasurePresence, MeasureTool, type MeasureToolOptions, type Measurement, MemoryAdapter, type NoteElement, NoteTool, type NoteToolOptions, type OverlayRenderer, PING_PRESENCE_KIND, PencilTool, type PencilToolOptions, type PingEmission, PingInput, type PingInputHost, type PingInputOptions, type PingPresence, PingTool, type PingToolOptions, type Point, type PointerState, RemoteLaserOverlay, type RemoteLaserOverlayHost, type RemoteLaserOverlayOptions, RemoteMeasureOverlay, type RemoteMeasureOverlayHost, type RemoteMeasureOverlayOptions, RemotePingOverlay, type RemotePingOverlayHost, type RemotePingOverlayOptions, type RenderStatsSnapshot, type RotateDirection, SelectTool, 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, boundsIntersect, createArrow, createGrid, createHtmlElement, createImage, createNote, createShape, createStroke, createTemplate, createText, drawHexPath, exportImage, exportSvg, getActiveFormats, getArrowBounds, getArrowControlPoint, getArrowMidpoint, getArrowTangentAngle, getBendFromPoint, getElementBounds, getElementStyle, getElementsBoundingBox, getHexCellsInCone, getHexCellsInLine, getHexCellsInRadius, getHexCellsInRectangle, getHexCellsInSquare, getHexDistance, isLaserTrailPresence, isMeasurePresence, isNearBezier, isPingPresence, setFontSize, smartSnap, snapPoint, snapToHexCenter, styleToPatch, toLaserTrailPresence, toMeasurePresence, toPingPresence, toggleBold, toggleItalic, toggleStrikethrough, toggleUnderline };
1760
+ export { type ActiveFormats, type AlignEdge, type ArrowElement, type ArrowStrokeStyle, ArrowTool, type ArrowToolOptions, AutoSave, type AutoSaveOptions, type BackgroundOptions, type BackgroundPattern, type Binding, type Bounds, Camera, type CameraChangeInfo, type CameraOptions, type CanvasElement, type CanvasState, type Command, DEFAULT_NOTE_FONT_SIZE, type DistributeAxis, type ElementChangeMeta, ElementStore, type ElementStyle, type ElementType, type ElementUpdateEvent, EraserTool, type EraserToolOptions, type ExportAssetError, type ExportAssetErrorReason, type ExportImageOptions, type ExportResourceOptions, type ExportSvgOptions, type FontSizePreset, type GridElement, type GridInfo, HandTool, type HexOrientation, HistoryStack, type HistoryStackOptions, type HtmlElement, type HtmlExportError, type HtmlExportErrorReason, type HtmlExportOptions, type HtmlExportRenderer, type ImageElement, ImageTool, type ImageToolOptions, IndexedDBAdapter, type IndexedDBAdapterOptions, LASER_TRAIL_PRESENCE_KIND, LaserTool, type LaserToolOptions, type LaserTrailEmission, type LaserTrailPresence, type Layer, LayerManager, LocalStorageAdapter, MEASURE_PRESENCE_KIND, type MeasureEmission, type MeasurePresence, MeasureTool, type MeasureToolOptions, type Measurement, MemoryAdapter, MinimapController, type MinimapControllerOptions, type NoteElement, NoteTool, type NoteToolOptions, type OverlayRenderer, PING_PRESENCE_KIND, PencilTool, type PencilToolOptions, type PingEmission, PingInput, type PingInputHost, type PingInputOptions, type PingPresence, PingTool, type PingToolOptions, type Point, type PointerState, RemoteLaserOverlay, type RemoteLaserOverlayHost, type RemoteLaserOverlayOptions, RemoteMeasureOverlay, type RemoteMeasureOverlayHost, type RemoteMeasureOverlayOptions, RemotePingOverlay, type RemotePingOverlayHost, type RemotePingOverlayOptions, type RenderStatsSnapshot, type RotateDirection, SelectTool, 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, boundsIntersect, createArrow, createGrid, createHtmlElement, createImage, createNote, createShape, createStroke, createTemplate, createText, drawHexPath, exportImage, exportSvg, getActiveFormats, getArrowBounds, getArrowControlPoint, getArrowMidpoint, getArrowTangentAngle, getBendFromPoint, getElementBounds, getElementStyle, getElementsBoundingBox, getHexCellsInCone, getHexCellsInLine, getHexCellsInRadius, getHexCellsInRectangle, getHexCellsInSquare, getHexDistance, isLaserTrailPresence, isMeasurePresence, isNearBezier, isPingPresence, setFontSize, smartSnap, snapPoint, snapToHexCenter, styleToPatch, toLaserTrailPresence, toMeasurePresence, toPingPresence, toggleBold, toggleItalic, toggleStrikethrough, toggleUnderline };