/// /// import { MessageResponses } from "../../util/observe"; import { CPPObject } from "../../core/runtime/objects"; import { AtomicType, CompleteObjectType, PointerType, BoundedArrayType, ArrayElemType, CompleteClassType } from "../../core/compilation/types"; import { BoundReferenceEntity, UnboundReferenceEntity, NamedEntity } from "../../core/compilation/entities"; import { MemoryOutlet } from "./MemoryOutlet"; export declare abstract class MemoryObjectOutlet { readonly object: CPPObject; protected readonly memoryOutlet: MemoryOutlet; protected readonly element: JQuery; abstract readonly objElem: JQuery; private svgElem?; private svg?; _act: MessageResponses; readonly names: readonly string[]; constructor(element: JQuery, object: CPPObject, memoryOutlet: MemoryOutlet, name: string | undefined); disconnect(): void; protected abstract updateObject(): void; protected valueRead(): void; protected valueWritten(): void; protected onReferenceBoundToMe(refEntity: BoundReferenceEntity): void; protected onReferenceUnbound(refEntity: BoundReferenceEntity): void; protected abstract onNamesUpdate(): void; protected deallocated(): void; protected leaked(): void; protected unleaked(): void; protected validitySet(isValid: boolean): void; protected callReceived(): void; protected callEnded(): void; protected findOutlet(callback: (t: this) => void): void; protected useSVG(): void; } export declare class SingleMemoryObject extends MemoryObjectOutlet { protected readonly addrElem: JQuery; readonly objElem: JQuery; protected readonly namesElem: JQuery; constructor(element: JQuery, object: CPPObject, memoryOutlet: MemoryOutlet); protected onNamesUpdate(): void; protected updateObject(): void; } export declare class PointerMemoryObjectOutlet = PointerType> extends SingleMemoryObject { readonly pointedObject?: CPPObject; private readonly ptdArrayElem; private arrow?; private pointedObjectListener; constructor(element: JQuery, object: CPPObject, memoryOutlet: MemoryOutlet); protected updateObject(): void; private onAtomicObjectInitialized; } export declare class ReferenceMemoryOutlet { readonly entity: (UnboundReferenceEntity | BoundReferenceEntity) & NamedEntity; readonly object?: CPPObject; private readonly element; private readonly addrElem; private readonly objElem; constructor(element: JQuery, entity: UnboundReferenceEntity & NamedEntity); bind(object: CPPObject): void; } export declare class ArrayMemoryObjectOutlet extends MemoryObjectOutlet> { readonly addrElem: JQuery; readonly objElem: JQuery; protected readonly namesElem: JQuery; readonly elemOutlets: MemoryObjectOutlet[]; readonly onePast: JQuery; constructor(element: JQuery, object: CPPObject>, memoryOutlet: MemoryOutlet); protected updateObject(): void; protected onNamesUpdate(): void; } export declare class ArrayElemMemoryObjectOutlet extends MemoryObjectOutlet { readonly objElem: JQuery; constructor(element: JQuery, object: CPPObject, memoryOutlet: MemoryOutlet); protected updateObject(): void; protected onNamesUpdate(): void; } export declare class ClassMemoryObjectOutlet extends MemoryObjectOutlet { readonly objElem: JQuery; private readonly addrElem?; protected readonly namesElem: JQuery; constructor(element: JQuery, object: CPPObject, memoryOutlet: MemoryOutlet); protected updateObject(): void; protected onNamesUpdate(): void; } export declare class StringMemoryObject extends MemoryObjectOutlet { protected readonly addrElem: JQuery; readonly objElem: JQuery; protected readonly namesElem: JQuery; constructor(element: JQuery, object: CPPObject, memoryOutlet: MemoryOutlet); protected updateObject(): void; protected onNamesUpdate(): void; } export declare class InlinePointedArrayOutlet extends MemoryObjectOutlet { readonly objElem: JQuery; private arrayOutlet?; constructor(element: JQuery, object: CPPObject, memoryOutlet: MemoryOutlet); private setArrayOutlet; protected updateObject(): void; protected onNamesUpdate(): void; } export declare class VectorMemoryObject extends MemoryObjectOutlet { readonly objElem: JQuery; protected readonly namesElem: JQuery; constructor(element: JQuery, object: CPPObject, memoryOutlet: MemoryOutlet); protected updateObject(): void; protected onNamesUpdate(): void; } export declare function createMemoryObjectOutlet(elem: JQuery, obj: CPPObject, memoryOutlet: MemoryOutlet): ArrayMemoryObjectOutlet | StringMemoryObject | VectorMemoryObject | ClassMemoryObjectOutlet | SingleMemoryObject;