import type { RdfDatasetRepresentation } from '../../http/representation/RdfDatasetRepresentation';
import type { RepresentationPatcherInput } from './RepresentationPatcher';
import { RepresentationPatcher } from './RepresentationPatcher';
/**
 * Applies an N3 Patch to a representation, or creates a new one if required.
 * Follows all the steps from Solid, §5.3.1: https://solid.github.io/specification/protocol#n3-patch
 */
export declare class N3Patcher extends RepresentationPatcher<RdfDatasetRepresentation> {
    protected readonly logger: import("global-logger-factory").Logger<unknown>;
    constructor();
    canHandle({ patch }: RepresentationPatcherInput<RdfDatasetRepresentation>): Promise<void>;
    handle(input: RepresentationPatcherInput<RdfDatasetRepresentation>): Promise<RdfDatasetRepresentation>;
    /**
     * Applies the given N3Patch to the store.
     * First the conditions are applied to find the necessary bindings,
     * which are then applied to generate the triples that need to be deleted and inserted.
     * After that the delete and insert operations are applied.
     */
    private patch;
    /**
     * Creates a new N3Patch where the conditions of the provided patch parameter are applied to its deletes and inserts.
     * Also does the necessary checks to make sure the conditions are valid for the given dataset.
     */
    private applyConditions;
}
