import { LanguageSelector } from 'thaw-interpreter-types';
import { IPrologExpression } from './interfaces/iprolog-expression';
import { IPrologNumber } from './interfaces/iprolog-number';
import { PrologNameExpression } from './prolog-name-expression';
import { ISubstitution } from './interfaces/isubstitution';
export declare function isPrologGoal(obj: unknown): obj is PrologGoal;
export declare class PrologGoal extends PrologNameExpression {
    readonly typename: string;
    constructor(gsParam: LanguageSelector, predicate: string, expressionList: IPrologExpression[]);
    equals(other: unknown): boolean;
    ApplySubstitution(substitution: ISubstitution): PrologGoal;
    Unify(otherExpr: IPrologExpression): ISubstitution | undefined;
    EvaluateToNumber(): IPrologNumber | undefined;
    get isCut(): boolean;
}
//# sourceMappingURL=prolog-goal.d.ts.map