///
///
import { ArrayDefaultInitializerOutlet, AtomicDefaultInitializerOutlet, ClassDefaultInitializerOutlet } from "../../../view/constructs/InitializerOutlet";
import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet";
import { TranslationUnitContext } from "../../compilation/contexts";
import { FunctionEntity, ObjectEntity, UnboundReferenceEntity } from "../../compilation/entities";
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 DefaultInitializer extends Initializer {
static create(context: TranslationUnitContext, target: UnboundReferenceEntity): ReferenceDefaultInitializer;
static create(context: TranslationUnitContext, target: ObjectEntity): AtomicDefaultInitializer;
static create(context: TranslationUnitContext, target: ObjectEntity): ArrayDefaultInitializer;
static create(context: TranslationUnitContext, target: ObjectEntity): ClassDefaultInitializer;
static create(context: TranslationUnitContext, target: ObjectEntity): AtomicDefaultInitializer | ArrayDefaultInitializer | ClassDefaultInitializer;
static create(context: TranslationUnitContext, target: ObjectEntity | UnboundReferenceEntity): ReferenceDefaultInitializer | AtomicDefaultInitializer | ArrayDefaultInitializer | ClassDefaultInitializer;
readonly kind = "default";
abstract createRuntimeInitializer(this: CompiledDefaultInitializer, parent: RuntimeConstruct): RuntimeDefaultInitializer;
}
export interface CompiledDefaultInitializer extends DefaultInitializer, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly target: ObjectEntity;
}
export declare abstract class RuntimeDefaultInitializer = CompiledDefaultInitializer> extends RuntimeInitializer {
protected constructor(model: C, parent: RuntimeConstruct);
}
export declare class ReferenceDefaultInitializer extends DefaultInitializer {
readonly construct_type = "ReferenceDefaultInitializer";
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 AtomicDefaultInitializer extends DefaultInitializer {
readonly construct_type = "AtomicDefaultInitializer";
readonly target: ObjectEntity;
constructor(context: TranslationUnitContext, target: ObjectEntity);
createRuntimeInitializer(this: CompiledAtomicDefaultInitializer, parent: RuntimeConstruct): RuntimeAtomicDefaultInitializer;
createRuntimeInitializer(this: CompiledDefaultInitializer, parent: RuntimeConstruct): never;
createDefaultOutlet(this: CompiledAtomicDefaultInitializer, element: JQuery, parent?: ConstructOutlet): AtomicDefaultInitializerOutlet;
explain(sim: Simulation, rtConstruct: RuntimeConstruct): {
message: string;
};
}
export interface CompiledAtomicDefaultInitializer extends AtomicDefaultInitializer, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly target: ObjectEntity;
}
export declare class RuntimeAtomicDefaultInitializer extends RuntimeDefaultInitializer> {
constructor(model: CompiledAtomicDefaultInitializer, parent: RuntimeConstruct);
protected upNextImpl(): void;
stepForwardImpl(): void;
}
export declare class ArrayDefaultInitializer extends DefaultInitializer {
readonly construct_type = "ArrayDefaultInitializer";
readonly target: ObjectEntity;
readonly elementInitializers?: DefaultInitializer[];
constructor(context: TranslationUnitContext, target: ObjectEntity);
createRuntimeInitializer(this: CompiledArrayDefaultInitializer, parent: RuntimeConstruct): RuntimeArrayDefaultInitializer;
createRuntimeInitializer(this: CompiledDefaultInitializer, parent: RuntimeConstruct): never;
createDefaultOutlet(this: CompiledArrayDefaultInitializer, element: JQuery, parent?: ConstructOutlet): ArrayDefaultInitializerOutlet;
explain(sim: Simulation, rtConstruct: RuntimeConstruct): {
message: string;
};
}
export interface CompiledArrayDefaultInitializer extends ArrayDefaultInitializer, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly target: ObjectEntity;
readonly elementInitializers?: CompiledDefaultInitializer[];
}
export declare class RuntimeArrayDefaultInitializer extends RuntimeDefaultInitializer> {
readonly elementInitializers?: RuntimeDefaultInitializer[];
private index;
constructor(model: CompiledArrayDefaultInitializer, parent: RuntimeConstruct);
protected upNextImpl(): void;
stepForwardImpl(): void;
}
export declare class ClassDefaultInitializer extends DefaultInitializer {
readonly construct_type = "ClassDefaultInitializer";
readonly target: ObjectEntity;
readonly ctor?: FunctionEntity>;
readonly ctorCall?: FunctionCall;
constructor(context: TranslationUnitContext, target: ObjectEntity);
createRuntimeInitializer(this: CompiledClassDefaultInitializer, parent: RuntimeConstruct): RuntimeClassDefaultInitializer;
createRuntimeInitializer(this: CompiledDefaultInitializer, parent: RuntimeConstruct): never;
createDefaultOutlet(this: CompiledClassDefaultInitializer, element: JQuery, parent?: ConstructOutlet): ClassDefaultInitializerOutlet;
explain(sim: Simulation, rtConstruct: RuntimeConstruct): {
message: string;
};
}
export interface CompiledClassDefaultInitializer extends ClassDefaultInitializer, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly target: ObjectEntity;
readonly ctor: FunctionEntity>;
readonly ctorCall: CompiledFunctionCall>;
}
export declare class RuntimeClassDefaultInitializer extends RuntimeDefaultInitializer> {
readonly ctorCall: RuntimeFunctionCall>;
private index;
constructor(model: CompiledClassDefaultInitializer, parent: RuntimeConstruct);
protected upNextImpl(): void;
stepForwardImpl(): void;
}