import type { Expressions, StrictExpressions } from "../expression.js";
import { MemberExpression } from "../member-expression.js";
import { NewExpression } from "../new-expression.js";
import { ExpressionVisitor } from "./expression-visitor.js";
/**
 * Simplifies an expression.
 * @param {any} expression - The expression to simplify.
 * @returns {any} The simplified expression.
 */
export declare class ExpressionSimplifyer extends ExpressionVisitor {
    private source;
    /**
     * Creates a new instance with the provided source expression.
     * @param source - The original expression to simplify
     */
    constructor(source: Expressions);
    private contexttualSource;
    visitMember<T, TMember extends keyof T>(arg0: MemberExpression<T, TMember, T[TMember]>): StrictExpressions;
    visitNew<T>(expression: NewExpression<T>): StrictExpressions;
}
