/**
 * @import { SymbolToken, Word } from "@helios-lang/compiler-utils"
 * @typedef {import("@helios-lang/ir").SourceMappedStringI} SourceMappedStringI
 * @typedef {import("../typecheck/index.js").EvalEntity} EvalEntity
 */
/**
 * Unary operator expression
 * Note: there are no post-unary operators, only pre
 */
export class UnaryExpr extends Expr {
    /**
     * @param {SymbolToken} op
     * @param {Expr} a
     */
    constructor(op: SymbolToken, a: Expr);
    /**
     * @private
     * @readonly
     * @type {SymbolToken}
     */
    private readonly _op;
    /**
     * @private
     * @readonly
     * @type {Expr}
     */
    private readonly _a;
    /**
     * Turns an op symbol into an internal name
     * @returns {Word}
     */
    translateOp(): Word;
}
export type SourceMappedStringI = import("@helios-lang/ir").SourceMappedStringI;
export type EvalEntity = import("../typecheck/index.js").EvalEntity;
import { Expr } from "./Expr.js";
import type { Word } from "@helios-lang/compiler-utils";
import type { SymbolToken } from "@helios-lang/compiler-utils";
//# sourceMappingURL=UnaryExpr.d.ts.map