///
///
import { BlockASTNode } from "../../../ast/ast_statements";
import { BlockOutlet } from "../../../view/constructs/BlockOutlet";
import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet";
import { BlockContext, FunctionContext, SemanticContext } from "../../compilation/contexts";
import { RuntimeFunction } from "../../compilation/functions";
import { AnalyticConstruct } from "../../../analysis/predicates";
import { SuccessfullyCompiled } from "../CPPConstruct";
import { CompiledObjectDeallocator, ObjectDeallocator, RuntimeObjectDeallocator } from "../ObjectDeallocator";
import { CompiledStatement, Statement, RuntimeStatement } from "./Statement";
export declare class Block extends Statement {
readonly construct_type = "block";
readonly statements: readonly Statement[];
readonly localDeallocator: ObjectDeallocator;
static createFromAST(ast: BlockASTNode, context: FunctionContext): Block;
constructor(context: BlockContext, ast: BlockASTNode, statements: readonly Statement[]);
isBlock(): this is Block;
createDefaultOutlet(this: CompiledBlock, element: JQuery, parent?: ConstructOutlet): BlockOutlet;
isSemanticallyEquivalent_impl(other: AnalyticConstruct, ec: SemanticContext): boolean;
private getChunks;
}
export interface CompiledBlock extends Block, SuccessfullyCompiled {
readonly statements: readonly CompiledStatement[];
readonly localDeallocator: CompiledObjectDeallocator;
}
export declare class RuntimeBlock extends RuntimeStatement {
readonly statements: readonly RuntimeStatement[];
readonly localDeallocator: RuntimeObjectDeallocator;
private index;
constructor(model: CompiledBlock, parent: RuntimeStatement | RuntimeFunction);
protected upNextImpl(): void;
stepForwardImpl(): void;
}