import { TemporaryObjectEntity } from "../compilation/entities"; import { TranslationUnitContext, SemanticContext } from "../compilation/contexts"; import { SuccessfullyCompiled, RuntimeConstruct } from "./CPPConstruct"; import { BasicCPPConstruct } from "./BasicCPPConstruct"; import { ASTNode } from "../../ast/ASTNode"; import { FunctionCall, CompiledFunctionCall } from "./FunctionCall"; import { AnalyticConstruct } from "../../analysis/predicates"; import { PotentialFullExpression } from "./PotentialFullExpression"; import { RuntimePotentialFullExpression } from "./RuntimePotentialFullExpression"; export declare class TemporaryDeallocator extends BasicCPPConstruct { readonly construct_type = "TemporaryDeallocator"; readonly parent?: PotentialFullExpression; readonly temporaryObjects: TemporaryObjectEntity[]; readonly dtors: (FunctionCall | undefined)[]; constructor(context: TranslationUnitContext, temporaryObjects: TemporaryObjectEntity[]); createRuntimeConstruct(this: CompiledTemporaryDeallocator, parent: RuntimePotentialFullExpression): RuntimeTemporaryDeallocator; isSemanticallyEquivalent_impl(other: AnalyticConstruct, equivalenceContext: SemanticContext): boolean; } export interface CompiledTemporaryDeallocator extends TemporaryDeallocator, SuccessfullyCompiled { readonly dtors: (CompiledFunctionCall | undefined)[]; } export declare class RuntimeTemporaryDeallocator extends RuntimeConstruct { private index; private justDestructed; readonly parent: RuntimePotentialFullExpression; constructor(model: CompiledTemporaryDeallocator, parent: RuntimePotentialFullExpression); protected upNextImpl(): void; stepForwardImpl(): void; }