///
///
import { ExpressionType } from "../../compilation/types";
import { ExpressionContext, ConstructDescription, SemanticContext } from "../../compilation/contexts";
import { SuccessfullyCompiled, RuntimeConstruct } from "../CPPConstruct";
import { ValueCategory, Expression, CompiledExpression, TypedExpression, t_TypedExpression } from "./Expression";
import { RuntimeExpression } from "./RuntimeExpression";
import { ParenthesesOutlet } from "../../../view/constructs/ExpressionOutlets";
import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet";
import { AnalyticConstruct } from "../../../analysis/predicates";
import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator";
import { ParenthesesExpressionASTNode } from "../../../ast/ast_expressions";
export declare class ParenthesesExpression extends Expression {
readonly construct_type = "parentheses_expression";
readonly type?: ExpressionType;
readonly valueCategory?: ValueCategory;
readonly subexpression: Expression;
constructor(context: ExpressionContext, ast: ParenthesesExpressionASTNode | undefined, subexpression: Expression);
static createFromAST(ast: ParenthesesExpressionASTNode, context: ExpressionContext): ParenthesesExpression;
createDefaultOutlet(this: CompiledParenthesesExpression, element: JQuery, parent?: ConstructOutlet): ParenthesesOutlet;
describeEvalResult(depth: number): ConstructDescription;
isSemanticallyEquivalent_impl(other: AnalyticConstruct, ec: SemanticContext): boolean;
}
export interface TypedParenthesesExpression extends ParenthesesExpression, t_TypedExpression {
readonly type: T;
readonly valueCategory: V;
readonly subexpression: TypedExpression;
}
export interface CompiledParenthesesExpression extends TypedParenthesesExpression, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly subexpression: CompiledExpression;
}
export declare class RuntimeParentheses extends RuntimeExpression> {
subexpression: RuntimeExpression;
private index;
constructor(model: CompiledParenthesesExpression, parent: RuntimeConstruct);
protected upNextImpl(): void;
protected stepForwardImpl(): void;
}