///
///
import { DeclarationStatementASTNode } from "../../../ast/ast_statements";
import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet";
import { BlockContext, SemanticContext } from "../../compilation/contexts";
import { AnalyticConstruct } from "../../../analysis/predicates";
import { CPPConstruct, SuccessfullyCompiled } from "../CPPConstruct";
import { InvalidConstruct } from "../InvalidConstruct";
import { AnalyticCompiledDeclaration } from "../declarations/analytics";
import { ClassDefinition } from "../declarations/class/ClassDefinition";
import { LocalDeclaration, LocalSimpleDeclaration } from "../declarations/declarations";
import { FunctionDefinition } from "../declarations/function/FunctionDefinition";
import { Statement, RuntimeStatement } from "./Statement";
import { DeclarationStatementOutlet } from "../../../view/constructs/StatementOutlets";
export declare class DeclarationStatement extends Statement {
readonly construct_type = "declaration_statement";
readonly declarations: readonly LocalDeclaration[] | FunctionDefinition | ClassDefinition | InvalidConstruct;
static createFromAST(ast: DeclarationStatementASTNode, context: BlockContext): DeclarationStatement;
constructor(context: BlockContext, ast: DeclarationStatementASTNode, declarations: readonly LocalDeclaration[] | FunctionDefinition | ClassDefinition | InvalidConstruct);
createDefaultOutlet(this: CompiledDeclarationStatement, element: JQuery, parent?: ConstructOutlet): DeclarationStatementOutlet;
isTailChild(child: CPPConstruct): {
isTail: boolean;
};
isSemanticallyEquivalent_impl(other: AnalyticConstruct, equivalenceContext: SemanticContext): boolean;
}
export interface CompiledDeclarationStatement extends DeclarationStatement, SuccessfullyCompiled {
readonly declarations: readonly AnalyticCompiledDeclaration[];
}
export declare class RuntimeDeclarationStatement extends RuntimeStatement {
readonly currentDeclarationIndex: number | null;
constructor(model: CompiledDeclarationStatement, parent: RuntimeStatement);
protected upNextImpl(): void;
stepForwardImpl(): boolean;
}