///
///
import { ArrayValueInitializerOutlet, AtomicValueInitializerOutlet, ClassValueInitializerOutlet } from "../../../view/constructs/InitializerOutlet";
import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet";
import { TranslationUnitContext } from "../../compilation/contexts";
import { FunctionEntity, ObjectEntity, UnboundReferenceEntity } from "../../compilation/entities";
import { CPPObject } from "../../runtime/objects";
import { Simulation } from "../../runtime/Simulation";
import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator";
import { AtomicType, BoundedArrayType, CompleteClassType, CompleteObjectType, FunctionType, VoidType } from "../../compilation/types";
import { RuntimeConstruct, SuccessfullyCompiled } from "../CPPConstruct";
import { CompiledFunctionCall, FunctionCall, RuntimeFunctionCall } from "../FunctionCall";
import { Initializer, RuntimeInitializer } from "./Initializer";
export declare abstract class ValueInitializer extends Initializer {
static create(context: TranslationUnitContext, target: UnboundReferenceEntity): ReferenceValueInitializer;
static create(context: TranslationUnitContext, target: ObjectEntity): AtomicValueInitializer;
static create(context: TranslationUnitContext, target: ObjectEntity): ArrayValueInitializer;
static create(context: TranslationUnitContext, target: ObjectEntity): ClassValueInitializer;
static create(context: TranslationUnitContext, target: ObjectEntity): AtomicValueInitializer | ArrayValueInitializer | ClassValueInitializer;
static create(context: TranslationUnitContext, target: ObjectEntity | UnboundReferenceEntity): ReferenceValueInitializer | AtomicValueInitializer | ArrayValueInitializer | ClassValueInitializer;
readonly kind = "value";
abstract createRuntimeInitializer(this: CompiledValueInitializer, parent: RuntimeConstruct): RuntimeValueInitializer;
}
export interface CompiledValueInitializer extends ValueInitializer, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly target: ObjectEntity;
}
export declare abstract class RuntimeValueInitializer = CompiledValueInitializer> extends RuntimeInitializer {
protected constructor(model: C, parent: RuntimeConstruct);
}
export declare class AtomicValueInitializer extends ValueInitializer {
readonly construct_type = "AtomicValueInitializer";
readonly target: ObjectEntity;
constructor(context: TranslationUnitContext, target: ObjectEntity);
createRuntimeInitializer(this: CompiledAtomicValueInitializer, parent: RuntimeConstruct): RuntimeAtomicValueInitializer;
createRuntimeInitializer(this: CompiledValueInitializer, parent: RuntimeConstruct): never;
createDefaultOutlet(this: CompiledAtomicValueInitializer, element: JQuery, parent?: ConstructOutlet): AtomicValueInitializerOutlet;
explain(sim: Simulation, rtConstruct: RuntimeConstruct): {
message: string;
};
}
export interface CompiledAtomicValueInitializer extends AtomicValueInitializer, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly target: ObjectEntity;
}
export declare class RuntimeAtomicValueInitializer extends RuntimeValueInitializer> {
constructor(model: CompiledAtomicValueInitializer, parent: RuntimeConstruct);
protected upNextImpl(): void;
stepForwardImpl(): void;
}
export declare class ReferenceValueInitializer extends ValueInitializer {
readonly construct_type = "ReferenceValueInitializer";
readonly target: UnboundReferenceEntity;
constructor(context: TranslationUnitContext, target: UnboundReferenceEntity);
createRuntimeInitializer(parent: RuntimeConstruct): never;
createDefaultOutlet(element: JQuery, parent?: ConstructOutlet): never;
explain(sim: Simulation, rtConstruct: RuntimeConstruct): {
message: string;
};
}
export declare class ArrayValueInitializer extends ValueInitializer {
readonly construct_type = "ArrayValueInitializer";
readonly target: ObjectEntity;
readonly elementInitializers?: ValueInitializer[];
constructor(context: TranslationUnitContext, target: ObjectEntity);
createRuntimeInitializer(this: CompiledArrayValueInitializer, parent: RuntimeConstruct): RuntimeArrayValueInitializer;
createRuntimeInitializer(this: CompiledValueInitializer, parent: RuntimeConstruct): never;
createDefaultOutlet(this: CompiledArrayValueInitializer, element: JQuery, parent?: ConstructOutlet): ArrayValueInitializerOutlet;
explain(sim: Simulation, rtConstruct: RuntimeConstruct): {
message: string;
};
}
export interface CompiledArrayValueInitializer extends ArrayValueInitializer, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly target: ObjectEntity;
readonly elementInitializers?: CompiledValueInitializer[];
}
export declare class RuntimeArrayValueInitializer extends RuntimeValueInitializer> {
readonly elementInitializers?: RuntimeValueInitializer[];
private index;
constructor(model: CompiledArrayValueInitializer, parent: RuntimeConstruct);
protected upNextImpl(): void;
stepForwardImpl(): void;
}
export declare class ClassValueInitializer extends ValueInitializer {
readonly construct_type = "ClassValueInitializer";
readonly target: ObjectEntity;
readonly ctor?: FunctionEntity>;
readonly ctorCall?: FunctionCall;
constructor(context: TranslationUnitContext, target: ObjectEntity);
createRuntimeInitializer(this: CompiledClassValueInitializer, parent: RuntimeConstruct): RuntimeClassValueInitializer;
createRuntimeInitializer(this: CompiledValueInitializer, parent: RuntimeConstruct): never;
createDefaultOutlet(this: CompiledClassValueInitializer, element: JQuery, parent?: ConstructOutlet): ClassValueInitializerOutlet;
explain(sim: Simulation, rtConstruct: RuntimeConstruct): {
message: string;
};
}
export interface CompiledClassValueInitializer extends ClassValueInitializer, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly target: ObjectEntity;
readonly ctor: FunctionEntity>;
readonly ctorCall: CompiledFunctionCall>;
}
export declare class RuntimeClassValueInitializer extends RuntimeValueInitializer> {
readonly ctorCall: RuntimeFunctionCall>;
private index;
readonly target: CPPObject;
constructor(model: CompiledClassValueInitializer, parent: RuntimeConstruct);
protected upNextImpl(): void;
stepForwardImpl(): void;
}