import type { IAction, IActorArgs, IActorOutput, IActorTest, Mediate } from '@comunica/core'; import { Actor } from '@comunica/core'; import type { QueryFormatType, IQueryExplained, IActionContext, IQueryOperationResult } from '@comunica/types'; import type { Algebra } from '@comunica/utils-algebra'; /** * A comunica actor for query-process events. * * Actor types: * * Input: IActionQueryProcess: The input query to process. * * Test: * * Output: IActorQueryProcessOutput: Output of the query processing. * * @see IActionQueryProcess * @see IActorQueryProcessOutput */ export declare abstract class ActorQueryProcess extends Actor { /** * @param args - * \ @defaultNested { a } bus * \ @defaultNested {Query processing failed: none of the configured actor were process to the query "${action.query}"} busFailMessage */ constructor(args: IActorQueryProcessArgs); } export interface IActionQueryProcess extends IAction { /** * The query to process. */ query: QueryFormatType; } export interface IActorQueryProcessOutput extends IActorOutput { /** * Result of the query processing. */ result: IQueryOperationResult | IQueryExplained; } export type IActorQueryProcessArgs = IActorArgs; export type MediatorQueryProcess = Mediate; export interface IQueryProcessSequential { parse: (query: QueryFormatType, context: IActionContext) => Promise; optimize: (operation: Algebra.Operation, context: IActionContext) => Promise; evaluate: (operation: Algebra.Operation, context: IActionContext) => Promise; } export interface IQueryProcessSequentialOutput { operation: Algebra.Operation; context: IActionContext; }