import { Bool } 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 { CompiledTemporaryDeallocator } from "../TemporaryDeallocator"; import { LogicalNotExpressionASTNode } from "../../../ast/ast_expressions"; import { SimpleRuntimeExpression } from "./SimpleRuntimeExpression"; import { UnaryOperatorExpression } from "./UnaryOperatorExpression"; export declare class LogicalNotExpression extends UnaryOperatorExpression { readonly construct_type = "logical_not_expression"; readonly type: Bool; readonly valueCategory = "prvalue"; readonly operand: Expression; readonly operator = "!"; constructor(context: ExpressionContext, ast: LogicalNotExpressionASTNode, operand: Expression); static createFromAST(ast: LogicalNotExpressionASTNode, context: ExpressionContext): LogicalNotExpression; describeEvalResult(depth: number): ConstructDescription; } export interface TypedLogicalNotExpression extends LogicalNotExpression, t_TypedExpression { readonly operand: TypedExpression; } export interface CompiledLogicalNotExpression extends TypedLogicalNotExpression, SuccessfullyCompiled { readonly temporaryDeallocator?: CompiledTemporaryDeallocator; readonly operand: CompiledExpression; } export declare class RuntimeLogicalNotExpression extends SimpleRuntimeExpression { operand: RuntimeExpression; constructor(model: CompiledLogicalNotExpression, parent: RuntimeConstruct); protected operate(): void; }