///
///
import { InitializerOutlet } from "../../../view/constructs/InitializerOutlet";
import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet";
import { SemanticContext } from "../../compilation/contexts";
import { NewArrayEntity, ObjectEntity, ObjectEntityType, UnboundReferenceEntity } from "../../compilation/entities";
import { AnalyticConstruct } from "../../../analysis/predicates";
import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator";
import { ReferenceType } from "../../compilation/types";
import { CPPConstruct, RuntimeConstruct, SuccessfullyCompiled } from "../CPPConstruct";
import { PotentialFullExpression } from "../PotentialFullExpression";
import { RuntimePotentialFullExpression } from "../RuntimePotentialFullExpression";
import { DirectInitializerKind } from "./DirectInitializer";
export declare type InitializerKind = "default" | "value" | DirectInitializerKind | "list";
export declare abstract class Initializer extends PotentialFullExpression {
abstract readonly target: NewArrayEntity | ObjectEntity | UnboundReferenceEntity;
abstract createRuntimeInitializer(parent: RuntimeConstruct): RuntimeInitializer;
abstract createDefaultOutlet(this: CompiledInitializer, element: JQuery, parent?: ConstructOutlet): InitializerOutlet;
isTailChild(child: CPPConstruct): {
isTail: boolean;
};
abstract readonly kind: InitializerKind;
isSemanticallyEquivalent_impl(other: AnalyticConstruct, equivalenceContext: SemanticContext): boolean;
}
export interface CompiledInitializer extends Initializer, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly target: ObjectEntity> | UnboundReferenceEntity>;
}
export declare abstract class RuntimeInitializer extends RuntimePotentialFullExpression {
protected constructor(model: C, parent: RuntimeConstruct);
}