import { PlaitBoard, PlaitElement } from '@plait/core'; export interface GeneratorExtraData { } export interface GeneratorOptions { prepend?: boolean; active?: boolean; } export declare abstract class Generator { protected board: P; g?: SVGGElement; protected options?: V; constructor(board: P, options?: V); processDrawing(element: T, parentG: SVGGElement, data?: K): void; /** * abstract function */ protected abstract canDraw(element: T, data?: K): boolean; /** * abstract function */ protected abstract draw(element: T, data?: K): SVGGElement | undefined; destroy(): void; } export interface AfterDraw { afterDraw(element: T): void; } export declare function hasAfterDraw(value: any): value is AfterDraw;