import type { RdfDatasetRepresentation } from '../../http/representation/RdfDatasetRepresentation';
import type { RepresentationPatcherInput } from './RepresentationPatcher';
import { RepresentationPatcher } from './RepresentationPatcher';
/**
 * Supports application/sparql-update PATCH requests on RDF resources.
 *
 * Only DELETE/INSERT updates without variables are supported.
 */
export declare class SparqlUpdatePatcher extends RepresentationPatcher<RdfDatasetRepresentation> {
    protected readonly logger: import("global-logger-factory").Logger<unknown>;
    private readonly engine;
    constructor();
    canHandle({ patch }: RepresentationPatcherInput<RdfDatasetRepresentation>): Promise<void>;
    handle({ identifier, patch, representation }: RepresentationPatcherInput<RdfDatasetRepresentation>): Promise<RdfDatasetRepresentation>;
    private isSparqlUpdate;
    private isDeleteInsert;
    private isComposite;
    /**
     * Checks if the input operation is of a supported type (DELETE/INSERT or composite of those)
     */
    private validateUpdate;
    /**
     * Checks if the input DELETE/INSERT is supported.
     * This means: no GRAPH statements, no DELETE WHERE containing terms of type Variable.
     */
    private validateDeleteInsert;
    /**
     * Checks if the composite update only contains supported update components.
     */
    private validateComposite;
    /**
     * Apply the given algebra operation to the given identifier.
     */
    private patch;
}
