import { IImmutableSet } from 'thaw-common-utilities.ts';
import { PrologGlobalInfo } from './prolog-global-info';
import { PrologGoal } from './prolog-goal';
import { IPrologNumber } from './interfaces/iprolog-number';
import { ISubstitution } from './interfaces/isubstitution';
import { IPrologVariable } from './interfaces/ivariable';
export declare class PrologClause {
    readonly Lhs: PrologGoal;
    readonly Rhs: PrologGoal[];
    constructor(lhs: PrologGoal, rhs: PrologGoal[]);
    toString(): string;
    FindBindingVariables(): IImmutableSet<IPrologVariable>;
    GetListOfBindingVariables(): IPrologVariable[];
    ContainsVariable(v: IPrologVariable): boolean;
    ApplySubstitution(substitution: ISubstitution): PrologClause;
    private isVariableInArrayOfVariables;
    RenameVariables(variablesToAvoid: IImmutableSet<IPrologVariable>, globalInfo: PrologGlobalInfo): PrologClause;
    Unify(otherExpr: PrologClause): ISubstitution | undefined;
    get IsGround(): boolean;
    EvaluateToNumber(): IPrologNumber | undefined;
}
//# sourceMappingURL=prolog-clause.d.ts.map