import { PlaitBoard, PlaitElement, RectangleClient } from '@plait/core'; import { Generator, GeneratorExtraData, GeneratorOptions } from '../generators/generator'; import { CommonImageItem } from '../utils'; import { ActiveGenerator } from '../generators/active.generator'; import { ImageComponentRef } from './with-image'; export declare const FOREIGN_OBJECT_IMAGE_CLASS_NAME = "foreign-object-image"; export interface ImageGeneratorOptions { getRectangle: (element: T) => RectangleClient; getImageItem: (element: T) => CommonImageItem; } export declare class ImageGenerator extends Generator & GeneratorOptions> { board: PlaitBoard; options: ImageGeneratorOptions; static key: string; foreignObject: SVGForeignObjectElement; imageComponentRef: ImageComponentRef; activeGenerator: ActiveGenerator; isFocus: boolean; element: T; constructor(board: PlaitBoard, options: ImageGeneratorOptions); canDraw(element: T): boolean; draw(element: T): SVGGElement; updateImage(nodeG: SVGGElement, previous: T, current: T): void; setFocus(element: PlaitElement, isFocus: boolean): void; destroy(): void; }