import { Bag } from "../../utils/bag"; import { State } from "../vm"; import { IDatabase } from "./database"; import { FunctionRelationFn, MappedRelation, Predicate } from "./predicate"; import { UnificationEnvironment } from "./unification"; export declare class FunctionLayer extends Bag { readonly parent: FunctionLayer | null; constructor(parent: FunctionLayer | null); try_lookup(name: string): FunctionRelationFn | null; } export declare class DatabaseLayer implements IDatabase { readonly parent: IDatabase; readonly functions: FunctionLayer; constructor(parent: IDatabase, functions: FunctionLayer); add(name: string, relation: MappedRelation): void; update(name: string, relation: MappedRelation): void; try_lookup(name: string): MappedRelation | null; lookup(name: string): MappedRelation; search(state: State, predicate: Predicate, initial_environment: UnificationEnvironment): UnificationEnvironment[]; }