import ExecutionContext from "../engine/context/execution-context.ts";
import type { PipelineInput } from "../engine/pipeline/pipeline-engine.ts";
import type { EngineTriple } from "../types.ts";
import Graph from "./graph.ts";
/**
 * An UnionGraph represents the dynamic union of several graphs.
 * Addition only affects the left-most operand, deletion affects all graphs.
 * Searching for RDF triple smatching a triple pattern in such Graph is equivalent
 * as the Union of matching RDF triples in all graphs.
 * @extends Graph
 */
export default class UnionGraph extends Graph {
    readonly _graphs: Graph[];
    /**
     * Constructor
     * @param graphs - Set of RDF graphs
     */
    constructor(graphs: Graph[]);
    insert(triple: EngineTriple): Promise<void>;
    delete(triple: EngineTriple): Promise<void>;
    find(triple: EngineTriple, context: ExecutionContext): PipelineInput<EngineTriple>;
    clear(): Promise<void>;
    estimateCardinality(triple: EngineTriple): Promise<number>;
}
