/**
 * @typedef {import("@helios-lang/compiler-utils").Site} Site
 * @typedef {import("../typecheck/index.js").Type} Type
 */
/**
 * (ArgType1, ...) -> RetType expression
 */
export class FuncTypeExpr extends Expr {
    /**
     * @param {Site} site
     * @param {FuncArgTypeExpr[]} argTypeExprs
     * @param {Expr} retTypeExpr
     */
    constructor(site: Site, argTypeExprs: FuncArgTypeExpr[], retTypeExpr: Expr);
    /**
     * @private
     * @readonly
     * @type {FuncArgTypeExpr[]}
     */
    private readonly _argTypeExprs;
    /**
     * @private
     * @readonly
     * @type {Expr}
     */
    private readonly _retTypeExpr;
    /**
     * @param {Scope} scope
     * @returns {Type}
     */
    evalInternal(scope: Scope): Type;
}
export type Site = import("@helios-lang/compiler-utils").Site;
export type Type = import("../typecheck/index.js").Type;
import { Expr } from "./Expr.js";
import { Scope } from "../scopes/index.js";
import { FuncArgTypeExpr } from "./FuncArgTypeExpr.js";
//# sourceMappingURL=FuncTypeExpr.d.ts.map