import { IImmutableSet } from 'thaw-common-utilities.ts';
import { ILCExpression, ILCSubstitution, ILCUnifiable, ILCVariable } from './interfaces/expression';
import { LCValueBase } from './value-base';
export declare class LCVariable extends LCValueBase implements ILCVariable {
    readonly name: string;
    constructor(name: string);
    toString(): string;
    equals(obj: unknown): boolean;
    containsVariableNamed(name: string): boolean;
    containsUnboundVariableNamed(name: string, boundVariableNames: IImmutableSet<string>): boolean;
    substituteForUnboundVariable(name: string, value: ILCExpression): ILCExpression;
    getSetOfAllVariableNames(): IImmutableSet<string>;
    applySubstitution(substitution: ILCSubstitution): ILCExpression;
    unify(other: ILCUnifiable, variablesInOriginalExpr1Param?: IImmutableSet<string>, variablesInOriginalExpr2Param?: IImmutableSet<string>): ILCSubstitution | undefined;
}
//# sourceMappingURL=variable.d.ts.map