import { Entity } from '../tree/Entity'; import { IRenderer } from '../renderer/IRenderer'; export declare class SVGEntity extends Entity { /** * Stroke colour of the fallback marker drawn when the source cannot be * rasterized. Set to `'transparent'` to opt out and keep the box empty. * Default `'rgba(248,113,113,0.9)'`. */ fallbackStroke: string; /** Fill behind the fallback marker. Default `'rgba(248,113,113,0.12)'`. */ fallbackFill: string; private svgSource; private imageBitmap; private imageElement; private blobURL; private currentImg; private lodTimeout; private rasterFailed; private cachedDoc; private baseWidth; private baseHeight; private lastRasterizedScale; private targetScale; constructor(svgSource: string, id?: string); setSVGSource(svgSource: string): void; private parseSVGDimensions; private triggerRasterization; /** * Whether the source genuinely rasterized to a bitmap. * * Distinguishes "drew the real artwork" from "drew the fallback marker", * which pixel counts alone cannot tell apart — both are non-blank. */ hasRasterBitmap(): boolean; /** * Whether rasterization failed, so {@link render} draws the fallback marker. * * `false` while a raster is still in flight; only a settled failure sets it. */ hasRasterFailed(): boolean; isPointInside(globalX: number, globalY: number): boolean; render(r: IRenderer): void; /** Box outline plus a diagonal cross — the conventional "broken image" mark. */ private drawFallback; destroy(): void; }