/** * Draw annotation mode controller. * * Owns Fabric free-drawing setup, draw-session teardown, and conversion of * completed paths into editor-owned annotation objects. * * @module */ import type * as FabricNS from 'fabric'; import { type FabricModule, type ImageEditorCallbackContext, type ResolvedDrawConfig, type ResolvedOptions } from '../core/public-types.js'; export interface DrawSession { mode: 'draw'; previousDrawingMode: boolean; previousBrush: unknown; previousCanvasSelection: boolean; previousDefaultCursor: string | undefined; handlers: Array<{ eventName: string; callback: (event: unknown) => void; }>; dispose(): void; } export interface DrawControllerContext { readonly fabric: FabricModule; readonly canvas: FabricNS.Canvas; readonly options: ResolvedOptions; getDrawConfig(): ResolvedDrawConfig; isImageLoaded(): boolean; getAnnotationCounter(): number; setAnnotationCounter(value: number): void; getDrawSession(): DrawSession | null; setDrawSession(session: DrawSession | null): void; saveCanvasState(): void; updateAnnotationList(): void; updateUi(): void; emitAnnotationsChanged(context: ImageEditorCallbackContext): void; emitImageChanged(context: ImageEditorCallbackContext): void; buildCallbackContext(operation: 'enterDrawMode' | 'exitDrawMode'): ImageEditorCallbackContext; } export declare function enterDrawMode(context: DrawControllerContext): void; export declare function exitDrawMode(context: DrawControllerContext): void; export declare function updateDrawBrush(context: DrawControllerContext): void; //# sourceMappingURL=draw-controller.d.ts.map