import type { ActorHttpInvalidateListenable, IActionHttpInvalidate } from '@comunica/bus-http-invalidate';
import type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';
import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';
import { ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';
import type { MediatorQuerySourceIdentify } from '@comunica/bus-query-source-identify';
import type { IActorTest, TestResult } from '@comunica/core';
import type { IActionContext, IQueryOperationResult } from '@comunica/types';
import type { Algebra } from 'sparqlalgebrajs';
/**
 * A comunica Service Query Operation Actor.
 * It unwraps the SERVICE operation and executes it on the given source.
 */
export declare class ActorQueryOperationService extends ActorQueryOperationTypedMediated<Algebra.Service> {
    readonly forceSparqlEndpoint: boolean;
    readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;
    readonly mediatorQuerySourceIdentify: MediatorQuerySourceIdentify;
    private readonly cache?;
    readonly httpInvalidator: ActorHttpInvalidateListenable;
    constructor(args: IActorQueryOperationServiceArgs);
    testOperation(operation: Algebra.Service, _context: IActionContext): Promise<TestResult<IActorTest>>;
    runOperation(operation: Algebra.Service, context: IActionContext): Promise<IQueryOperationResult>;
    /**
     * Handles HTTP cache invalidation events.
     * @param {IActionHttpInvalidate} action The invalidation action
     */
    handleHttpInvalidateEvent(action: IActionHttpInvalidate): void;
}
export interface IActorQueryOperationServiceArgs extends IActorQueryOperationTypedMediatedArgs {
    /**
     * If the SERVICE target should be assumed to be a SPARQL endpoint.
     * @default {false}
     */
    forceSparqlEndpoint: boolean;
    /**
     * A mediator for creating binding context merge handlers
     */
    mediatorMergeBindingsContext: MediatorMergeBindingsContext;
    /**
     * The mediator for identifying query sources.
     */
    mediatorQuerySourceIdentify: MediatorQuerySourceIdentify;
    /**
     * An actor that listens to HTTP invalidation events
     * @default {<default_invalidator> a <npmd:@comunica/bus-http-invalidate/^4.0.0/components/ActorHttpInvalidateListenable.jsonld#ActorHttpInvalidateListenable>}
     * TODO: make required in next-major.
     */
    httpInvalidator?: ActorHttpInvalidateListenable;
    /**
     * The cache size for sources, to mitigate the overhead of multiple identifications for the same source.
     * @default {32}
     */
    cacheSize?: number;
}
