import Fact from './facts/fact'; import LinkedList from './linked-list'; import { ITerminalNode } from './nodes'; import { IPattern } from './pattern'; export declare class Match { isMatch: boolean; hashCode: string; facts: Fact[]; factIds: number[]; factHash: Map; recency: number[]; aliases: string[]; addFact(assertable: Fact): this; merge(mr: Match): Match; } export default class Context { match: Match; factHash: Map; aliases: string[]; fact: Fact; hashCode: string; paths: IPattern[]; pathsHash: string; rightMatches: { [id: string]: Context; }; leftMatches: { [id: string]: Context; }; blocker: Context; blocking: LinkedList; fromMatches: { [id: number]: Context; }; blocked: boolean; rule: ITerminalNode; constructor(fact: Fact, paths?: IPattern[], mr?: Match); set(key: string, value: any): this; isMatch(isMatch?: boolean): boolean | this; mergeMatch(merge: Match): this; clone(fact?: Fact, paths?: IPattern[], match?: Match): Context; }