///
///
import { AtomicType, PotentiallyCompleteClassType } from "../../compilation/types";
import { ExpressionContext, ConstructDescription } from "../../compilation/contexts";
import { SuccessfullyCompiled, RuntimeConstruct } from "../CPPConstruct";
import { Expression, CompiledExpression, TypedExpression, t_TypedExpression } from "./Expression";
import { RuntimeExpression } from "./RuntimeExpression";
import { OutputOperatorExpressionOutlet } from "../../../view/constructs/ExpressionOutlets";
import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet";
import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator";
import { ArithmeticBinaryOperatorExpressionASTNode } from "../../../ast/ast_expressions";
import { SimpleRuntimeExpression } from "./SimpleRuntimeExpression";
import { CompiledStringLiteralExpression, RuntimeStringLiteralExpression } from "./StringLiteralExpression";
export declare class OutputOperatorExpression extends Expression {
readonly construct_type = "output_operator_expression";
readonly type: PotentiallyCompleteClassType;
readonly valueCategory = "lvalue";
readonly left: TypedExpression;
readonly right: Expression;
readonly operator = "<<";
constructor(context: ExpressionContext, ast: ArithmeticBinaryOperatorExpressionASTNode, left: TypedExpression, right: Expression);
createDefaultOutlet(this: CompiledOutputOperatorExpression, element: JQuery, parent?: ConstructOutlet): OutputOperatorExpressionOutlet;
describeEvalResult(depth: number): ConstructDescription;
}
export interface TypedOutputOperatorExpression extends OutputOperatorExpression, t_TypedExpression {
}
export interface CompiledOutputOperatorExpression extends TypedOutputOperatorExpression, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly left: CompiledExpression;
readonly right: CompiledExpression | CompiledStringLiteralExpression;
}
export declare class RuntimeOutputOperatorExpression extends SimpleRuntimeExpression {
readonly left: RuntimeExpression;
readonly right: RuntimeExpression | RuntimeStringLiteralExpression;
constructor(model: CompiledOutputOperatorExpression, parent: RuntimeConstruct);
operate(): void;
}