///
///
import { ArithmeticType, PointerToCompleteType as PointerToCompleteObjectType } from "../../compilation/types";
import { ExpressionContext, ConstructDescription, SemanticContext } from "../../compilation/contexts";
import { SuccessfullyCompiled, RuntimeConstruct } from "../CPPConstruct";
import { Expression, CompiledExpression, TypedExpression, t_TypedExpression } from "./Expression";
import { RuntimeExpression } from "./RuntimeExpression";
import { PostfixIncrementExpressionOutlet } from "../../../view/constructs/ExpressionOutlets";
import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet";
import { AnalyticConstruct } from "../../../analysis/predicates";
import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator";
import { PostfixIncrementExpressionASTNode } from "../../../ast/ast_expressions";
import { SimpleRuntimeExpression } from "./SimpleRuntimeExpression";
export declare class PostfixIncrementExpression extends Expression {
readonly construct_type = "postfix_increment_expression";
readonly type?: ArithmeticType | PointerToCompleteObjectType;
readonly valueCategory = "prvalue";
readonly operand: Expression;
readonly operator: "++" | "--";
constructor(context: ExpressionContext, ast: PostfixIncrementExpressionASTNode, operand: Expression);
static createFromAST(ast: PostfixIncrementExpressionASTNode, context: ExpressionContext): PostfixIncrementExpression;
createDefaultOutlet(this: CompiledPostfixIncrementExpression, element: JQuery, parent?: ConstructOutlet): PostfixIncrementExpressionOutlet;
describeEvalResult(depth: number): ConstructDescription;
isSemanticallyEquivalent_impl(other: AnalyticConstruct, ec: SemanticContext): boolean;
}
export interface TypedPostfixIncrementExpression extends PostfixIncrementExpression, t_TypedExpression {
readonly type: T;
readonly operand: TypedExpression;
}
export interface CompiledPostfixIncrementExpression extends TypedPostfixIncrementExpression, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly operand: CompiledExpression;
}
export declare class RuntimePostfixIncrementExpression extends SimpleRuntimeExpression> {
operand: RuntimeExpression;
constructor(model: CompiledPostfixIncrementExpression, parent: RuntimeConstruct);
protected operate(): void;
}