///
///
import { Memory } from "../../core/runtime/Memory";
import { MessageResponses } from "../../util/observe";
import * as SVG from "@svgdotjs/svg.js";
import { CPPObject } from "../../core/runtime/objects";
import { PointerToCompleteType } from "../../core/compilation/types";
import { StackFramesOutlet } from "./StackFramesOutlet";
import { TemporaryObjectsOutlet } from "./TemporaryObjectsOutlet";
import { HeapOutlet } from "./HeapOutlet";
import { MemoryObjectOutlet } from "./MemoryObjectOutlets";
export declare class MemoryOutlet {
readonly memory?: Memory;
readonly temporaryObjectsOutlet?: TemporaryObjectsOutlet;
readonly stackFramesOutlet?: StackFramesOutlet;
readonly heapOutlet?: HeapOutlet;
private readonly element;
readonly svgElem: JQuery;
readonly svg: SVG.Svg;
readonly SVG_DEFS: {
[index: string]: SVG.Marker;
};
_act: MessageResponses;
/**
* Maps from object ID to the outlet that represents that object.
*/
private objectOutlets;
/**
* Used to track SVG elements for pointer arrows. Maps from the object ID
* for the pointer to the SVG element
*/
private pointerSVGElems;
private svgOverlays;
private svgUpdateThread;
constructor(element: JQuery);
dispose(): void;
setMemory(memory: Memory): void;
clearMemory(): void;
registerObjectOutlet(outlet: MemoryObjectOutlet): void;
disposeObjectOutlet(outlet: MemoryObjectOutlet): void;
getObjectOutletById(objectId: number): MemoryObjectOutlet | undefined;
addSVGOverlay(overlay: SVGMemoryOverlay): void;
private updateSvg;
private onObjectAllocated;
private onReset;
}
declare abstract class SVGMemoryOverlay {
protected memoryOutlet: MemoryOutlet;
protected constructor(memoryOutlet: MemoryOutlet);
abstract update(): boolean;
abstract remove(): void;
}
export declare class SVGPointerArrowMemoryOverlay extends SVGMemoryOverlay {
readonly object: CPPObject;
private line;
constructor(object: CPPObject, memoryOutlet: MemoryOutlet);
update(): boolean;
private getPointerArrowOffsets;
remove(): void;
}
export {};