/** * @author Ben Situ * @license MIT * TypeScript-first image editor built on Fabric.js v7. * Provides image loading, transforms, masks, annotations, crop, mosaic, * undo/redo, state serialization, and export. * * @module */ import type { CanvasJson } from './core/state-serializer.js'; import type { AnnotationObject, AnnotationUpdateConfig, CropAspectRatio, CropModeOptions, DrawConfig, DrawSubMode, EditorToolMode, ElementMap, EraserConfig, FabricModule, ImageEditorSelection, ImageEditorState, ImageEditorOptions, ImageExportOptions, ImageFilterConfig, ImageInfo, LayoutMode, LoadImageOptions, MaskConfig, MaskObject, MosaicConfig, RemoveAllAnnotationsOptions, RemoveAllMasksOptions, RelayoutOptions, ResizeToContainerOptions, ResolvedDrawConfig, ResolvedEraserConfig, ResolvedImageFilterConfig, ResolvedMosaicConfig, ResolvedShapeAnnotationConfig, ResolvedTextAnnotationConfig, ShapeAnnotationConfig, ShapeAnnotationKind, ShapeAnnotationObject, TextAnnotationConfig, TextAnnotationObject } from './core/public-types.js'; import type { ExportOverlayStateOptions, ImportOverlayStateOptions, ImportOverlayStateResult, OverlayState, OverlayValidationOptions, OverlayValidationResult } from './overlay/overlay-state-types.js'; /** * TypeScript-first Fabric.js v7 image editor with image loading, transforms, * masks, annotations, crop, mosaic, undo/redo, and multi-format export. * * ## Quick start (ESM) * ```ts * import * as fabric from 'fabric'; * import { ImageEditor } from '@bensitu/image-editor'; * * const editor = new ImageEditor(fabric, { canvasWidth: 1024, canvasHeight: 768 }); * editor.init({ canvas: 'myCanvas' }); * ``` * * ## Quick start (CDN / `