///
///
import { ArithmeticType, 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 { InputOperatorExpressionOutlet } from "../../../view/constructs/ExpressionOutlets";
import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet";
import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator";
import { ArithmeticBinaryOperatorExpressionASTNode } from "../../../ast/ast_expressions";
export declare class InputOperatorExpression extends Expression {
readonly construct_type = "input_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: CompiledInputOperatorExpression, element: JQuery, parent?: ConstructOutlet): InputOperatorExpressionOutlet;
describeEvalResult(depth: number): ConstructDescription;
}
export interface TypedInputOperatorExpression extends InputOperatorExpression, t_TypedExpression {
}
export interface CompiledInputOperatorExpression extends TypedInputOperatorExpression, SuccessfullyCompiled {
readonly temporaryDeallocator?: CompiledTemporaryDeallocator;
readonly left: CompiledExpression;
readonly right: CompiledExpression;
}
export declare class RuntimeInputOperatorExpression extends RuntimeExpression {
readonly left: RuntimeExpression;
readonly right: RuntimeExpression;
private index;
constructor(model: CompiledInputOperatorExpression, parent: RuntimeConstruct);
protected upNextImpl(): void;
protected stepForwardImpl(): void;
}