///
///
import { ArrayAggregateInitializerOutlet, ClassAggregateInitializerOutlet } from "../../../view/constructs/InitializerOutlet";
import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet";
import { TranslationUnitContext } from "../../compilation/contexts";
import { ObjectEntity, ObjectEntityType, UnboundReferenceEntity } from "../../compilation/entities";
import { Simulation } from "../../runtime/Simulation";
import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator";
import { AtomicType, BoundedArrayType, CompleteClassType, CompleteObjectType, ReferenceType } from "../../compilation/types";
import { RuntimeConstruct, SuccessfullyCompiled } from "../CPPConstruct";
import { InvalidConstruct } from "../InvalidConstruct";
import { CompiledExpression, Expression } from "../expressions/Expression";
import { ClassDirectInitializer, CompiledDirectInitializer, DirectInitializer, RuntimeDirectInitializer } from "./DirectInitializer";
import { Initializer, RuntimeInitializer } from "./Initializer";
import { CompiledValueInitializer, RuntimeValueInitializer, ValueInitializer } from "./ValueInitializer";
export declare abstract class ListInitializer extends Initializer {
static create(context: TranslationUnitContext, target: UnboundReferenceEntity, args: readonly Expression[]): InvalidConstruct;
static create(context: TranslationUnitContext, target: ObjectEntity, args: readonly Expression[]): InvalidConstruct;
static create(context: TranslationUnitContext, target: ObjectEntity, args: readonly Expression[]): InvalidConstruct;
static create(context: TranslationUnitContext, target: ObjectEntity, args: readonly Expression[]): ClassDirectInitializer;
static create(context: TranslationUnitContext, target: ObjectEntity, args: readonly Expression[]): ClassDirectInitializer | InvalidConstruct;
static create(context: TranslationUnitContext, target: ObjectEntity | UnboundReferenceEntity, args: readonly Expression[]): ClassDirectInitializer | InvalidConstruct;
abstract readonly target: ObjectEntity | UnboundReferenceEntity;
abstract readonly args: readonly Expression[];
constructor(context: TranslationUnitContext);
abstract createRuntimeInitializer(this: CompiledListInitializer, parent: RuntimeConstruct): RuntimeListInitializer;
}
export interface CompiledListInitializer extends ListInitializer, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly target: ObjectEntity> | UnboundReferenceEntity>;
readonly args: readonly CompiledExpression[];
}
export declare abstract class RuntimeListInitializer = CompiledListInitializer> extends RuntimeInitializer {
protected constructor(model: C, parent: RuntimeConstruct);
}
export declare class ArrayAggregateInitializer extends ListInitializer {
readonly construct_type = "ArrayAggregateInitializer";
readonly kind = "list";
readonly target: ObjectEntity;
readonly args: readonly Expression[];
readonly elemInitializers: readonly (DirectInitializer | ValueInitializer)[];
readonly explicitElemInitializers: readonly DirectInitializer[];
readonly implicitElemInitializers: readonly ValueInitializer[];
constructor(context: TranslationUnitContext, target: ObjectEntity, args: readonly Expression[]);
createRuntimeInitializer(this: CompiledArrayAggregateInitializer, parent: RuntimeConstruct): RuntimeArrayAggregateInitializer;
createRuntimeInitializer(this: CompiledListInitializer, parent: RuntimeConstruct): never;
createDefaultOutlet(this: CompiledArrayAggregateInitializer, element: JQuery, parent?: ConstructOutlet): ArrayAggregateInitializerOutlet;
explain(sim: Simulation, rtConstruct: RuntimeConstruct): {
message: string;
};
}
export interface CompiledArrayAggregateInitializer extends ArrayAggregateInitializer, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly target: ObjectEntity>;
readonly args: readonly CompiledExpression[];
readonly elemInitializers: readonly (CompiledDirectInitializer | CompiledValueInitializer)[];
readonly explicitElemInitializers: readonly CompiledDirectInitializer[];
readonly implicitElemInitializers: readonly CompiledValueInitializer[];
}
export declare class RuntimeArrayAggregateInitializer extends RuntimeListInitializer> {
private index;
readonly elemInitializers: readonly (RuntimeDirectInitializer | RuntimeValueInitializer)[];
readonly explicitElemInitializers: readonly RuntimeDirectInitializer[];
readonly implicitElemInitializers: readonly RuntimeValueInitializer[];
constructor(model: CompiledArrayAggregateInitializer, parent: RuntimeConstruct);
protected upNextImpl(): void;
stepForwardImpl(): void;
}
export declare class ClassAggregateInitializer extends ListInitializer {
readonly construct_type = "ClassAggregateInitializer";
readonly kind = "list";
readonly target: ObjectEntity;
readonly args: readonly Expression[];
readonly memberInitializers: readonly (DirectInitializer | ValueInitializer)[];
readonly explicitMemberInitializers: readonly DirectInitializer[];
readonly implicitMemberInitializers: readonly ValueInitializer[];
constructor(context: TranslationUnitContext, target: ObjectEntity, args: readonly Expression[]);
createRuntimeInitializer(this: CompiledClassAggregateInitializer, parent: RuntimeConstruct): RuntimeClassAggregateInitializer;
createRuntimeInitializer(this: CompiledListInitializer, parent: RuntimeConstruct): never;
createDefaultOutlet(this: CompiledClassAggregateInitializer, element: JQuery, parent?: ConstructOutlet): ClassAggregateInitializerOutlet;
explain(sim: Simulation, rtConstruct: RuntimeConstruct): {
message: string;
};
}
export interface CompiledClassAggregateInitializer extends ClassAggregateInitializer, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly target: ObjectEntity>;
readonly args: readonly CompiledExpression[];
readonly memberInitializers: readonly (CompiledDirectInitializer | CompiledValueInitializer)[];
readonly explicitMemberInitializers: readonly CompiledDirectInitializer[];
readonly implicitMemberInitializers: readonly CompiledValueInitializer[];
}
export declare class RuntimeClassAggregateInitializer extends RuntimeListInitializer> {
private index;
readonly memberInitializers: readonly (RuntimeDirectInitializer | RuntimeValueInitializer)[];
readonly explicitMemberInitializers: readonly RuntimeDirectInitializer[];
readonly implicitMemberInitializers: readonly RuntimeValueInitializer[];
constructor(model: CompiledClassAggregateInitializer, parent: RuntimeConstruct);
protected upNextImpl(): void;
stepForwardImpl(): void;
}