import { MceImageJSON, FabricObject, MceStaticCanvas } from 'mini-canvas-core'; interface EditorConfiguration { initialMode?: EditorMode; rect?: RectModeConfiguration | false; brush?: BrushModeConfiguration | false; textbox?: TextboxModeConfiguration | false; image?: ImageModeConfiguration | false; sidebar?: SidebarConfiguration | boolean; } interface SidebarConfiguration { /** * Whether to show the properties panel. * @default true */ properties?: boolean; /** * Whether to show the layers panel. * @default true */ layers?: boolean; } interface RectModeConfiguration { fillColor?: string; } interface BrushModeConfiguration { brushSize?: number; brushColor?: string; } interface TextboxModeConfiguration { } interface ImageModeConfiguration { } declare enum EditorMode { select = "select", rect = "rect", brush = "brush", textbox = "textbox" } declare class SimpleEvent { private readonly listeners; subscribe(listener: SimpleEventListener): void; unsubscribe(listener: SimpleEventListener): void; readonly forward: (value: T) => void; count(): number; } type SimpleEventListener = (value: T) => void; interface CreateFromImageOptions { selectable?: boolean; select?: boolean; workspaceWidth?: number; workspaceHeight?: number; fitToWorkspace?: boolean; } declare class Editor { private readonly view; private readonly workspace; private readonly state; private readonly layoutController; static createBlank(placeholder: HTMLElement, workspaceWidth: number, workspaceHeight: number, configuration: EditorConfiguration): Editor; static createFromImage(placeholder: HTMLElement, image: HTMLImageElement, imageOptions: CreateFromImageOptions, configuration: EditorConfiguration): Editor; static createFromJSON(json: MceImageJSON, placeholder: HTMLElement, configuration: EditorConfiguration): Promise; private static create; readonly onChanged: SimpleEvent; private constructor(); private readonly onAnyChange; getWidth(): number; getHeight(): number; getWorkspaceObjects(): FabricObject[]; add(object: FabricObject): void; toJSON(): MceImageJSON; cloneToStaticCanvas(): Promise; render(): HTMLCanvasElement; destroy(): Promise; } export { type BrushModeConfiguration, type CreateFromImageOptions, Editor, type EditorConfiguration, EditorMode, type ImageModeConfiguration, type RectModeConfiguration, type SidebarConfiguration, type TextboxModeConfiguration };