import type { Update, GraphQuads, Triple, ClearDropOperation } from 'sparqljs';
import type { Entity } from '../../../util/Types';
export interface EntityUpdateQueries {
    clear: ClearDropOperation[];
    insertions: GraphQuads[];
    timestampInsertions: GraphQuads[];
}
export interface EntityUpdateTriples {
    entityTriples: Triple[];
    timestampTriples: Triple[];
}
export interface SparqlUpdateBuilderArgs {
    setTimestamps?: boolean;
}
export declare class SparqlUpdateBuilder {
    private readonly variableGenerator;
    private readonly setTimestamps;
    constructor(args?: SparqlUpdateBuilderArgs);
    buildPartialUpdate(idOrIds: string | string[], attributes: Partial<Entity>): Update;
    buildUpdate(entityOrEntities: Entity | Entity[]): Update;
    buildDeleteById(idOrIds: string | string[]): Update;
    buildDelete(entityOrEntities: Entity | Entity[]): Update;
    buildDeleteAll(): Update;
    private idsAndAttributesToGraphDeletionsAndInsertions;
    private entitiesToGraphDeletionsAndInsertions;
    private idsToGraphDropUpdates;
    private entitiesToGraphDropUpdates;
    private partialEntityToDeletionTriples;
    private partialEntityToTriples;
    private entityToTriples;
    private buildTriplesForSubjectPredicateAndValues;
    private buildTriplesWithSubjectPredicateAndIriValue;
    private buildTriplesWithSubjectPredicateAndVariableValue;
    private buildTriplesWithSubjectPredicateAndValue;
    private jsonLdValueObjectToLiteral;
    private buildTriplesForList;
    private buildTriplesForBlankNode;
}
