import type { SparqlQuery } from 'sparqljs'; import type { NamedNode, Quad, Term } from '@rdfjs/types'; import type { RdfQuery, RdfBindingRow, RdfConstructTemplate, RdfQueryTermPattern } from './types'; export interface RdfSparqlCompileResult { query: RdfQuery; variables: string[]; queryType: 'SELECT' | 'ASK' | 'CONSTRUCT' | 'DESCRIBE'; constructTemplate?: RdfConstructTemplate[]; describeTargets?: RdfQueryTermPattern[]; } export interface RdfSparqlInsertOperation { type: 'insert'; quads: Quad[]; } export interface RdfSparqlDeleteOperation { type: 'delete'; quads: Quad[]; } export interface RdfSparqlDeleteWhereTemplate { graph: RdfQueryTermPattern; subject: RdfQueryTermPattern; predicate: RdfQueryTermPattern; object: RdfQueryTermPattern; } export type RdfSparqlUpdateTemplate = RdfSparqlDeleteWhereTemplate; export interface RdfSparqlDeleteWhereOperation { type: 'deleteWhere'; query: RdfQuery; template: RdfSparqlUpdateTemplate[]; } export interface RdfSparqlInsertDeleteWhereOperation { type: 'insertDeleteWhere'; query: RdfQuery; deletes: RdfSparqlUpdateTemplate[]; inserts: RdfSparqlUpdateTemplate[]; } export interface RdfSparqlInsertWhereOperation { type: 'insertWhere'; query: RdfQuery; inserts: RdfSparqlUpdateTemplate[]; } export type RdfSparqlUpdateDeltaOperation = RdfSparqlInsertOperation | RdfSparqlDeleteOperation | RdfSparqlDeleteWhereOperation | RdfSparqlInsertDeleteWhereOperation | RdfSparqlInsertWhereOperation; export interface RdfSparqlUpdateDelta { operations: RdfSparqlUpdateDeltaOperation[]; inserts: Quad[]; deletes: Quad[]; } export interface RdfSparqlUpdateCompileOptions { defaultGraph?: string | NamedNode; } export interface UnsupportedSparqlQueryErrorOptions { code?: string; capability?: string; hint?: string; correction?: SparqlCorrection; } export type SparqlCorrectionAction = 'rewrite_query' | 'constrain_graph_scope' | 'materialize_intermediate' | 'route_external_executor' | 'use_write_api'; export type SparqlCorrectionTarget = 'embedded_rdf_engine' | 'trusted_client_or_federated_engine' | 'pod_write_api'; export interface SparqlCorrection { capability: string; primaryAction: SparqlCorrectionAction; availableActions: SparqlCorrectionAction[]; target: SparqlCorrectionTarget; message: string; } export declare class UnsupportedSparqlQueryError extends Error { readonly code: string; readonly capability: string; readonly hint: string; readonly correction: SparqlCorrection; constructor(message: string, options?: UnsupportedSparqlQueryErrorOptions); } export declare class DisabledSparqlFeatureError extends Error { constructor(message: string); } export declare function sparqlCorrectionForCapability(capability: string): SparqlCorrection; export declare class RdfSparqlAdapter { assertServerOwnedNativeQuery(query: string, basePath: string): void; compile(query: string | SparqlQuery, basePath: string): RdfSparqlCompileResult; compileUpdateDelta(query: string | SparqlQuery, basePath: string, options?: RdfSparqlUpdateCompileOptions): RdfSparqlUpdateDelta; private compileDeleteWhere; private compileInsertDeleteWhere; private compileUsingDatasetScope; private compileUsingGraphs; private compileQueryDatasetScope; private compileImplicitQueryDefaultGraph; private compileQueryDatasetGraphs; private queryFromClause; private compileWithGraph; private impossibleGraph; private queryFromUpdateWhere; private queryFromUpdateTemplate; private compileGraphQuadsTemplate; private safeUpdateTemplateGraphVariables; private collectQueryGraphVariables; private collectFiniteGraphFilterVariables; private isNamedNodeFilterValue; private updateTemplateTriples; private assertSafeUpdateTemplatePattern; private assertScopedUpdateWherePatterns; private assertFiniteUpdateGraphVariables; private collectUnboundedUpdateGraphVariables; private collectFiniteGraphFilterVariablesFromFilters; private isBasePathNamedNodeFilterValue; private collectFiniteGraphValueVariables; private compileUpdateGraphQuads; private compileUpdateDefaultGraph; private compileUpdateTriple; private compileUpdateNamedNode; private compileUpdateObject; private compilePatterns; private compileUnionBranches; private compileUnionBranch; private compileMinusGroup; private compileAntiJoinGroup; private compileExistsGroup; private notExistsPatterns; private existsPatterns; private unionBranchPatterns; private compileBgp; private compileGraphPattern; private compileScopedGraphTerm; private graphScopeContains; private graphScopeFilterValues; private compileBind; private compileBindExpression; private compileBindLikeExpression; private compileTriple; private compilePropertyPath; private compilePathSegmentPredicate; private flattenFixedLengthPath; private flattenFixedAlternativePath; private flattenFixedAlternativePathItem; private flattenFixedLengthPathItem; private compileGraphTerm; private compileTerm; materializeConstruct(template: RdfConstructTemplate[], rows: RdfBindingRow[], graph?: Term): Quad[]; materializeDeleteWhere(template: RdfSparqlUpdateTemplate[], rows: RdfBindingRow[]): Quad[]; private materializeTemplate; private compileConstructTemplate; private compileDescribeTargets; private resolveTemplateTerm; private compileSelectVariables; private compileAggregateProjection; private aggregateType; private assertNumericAggregateSafe; private compileSelectProjectionExpression; private compileGroupBy; private compileGroupByExpression; private compileHaving; private compileHavingFilter; private compileHavingBinaryFilter; private havingAggregateVariableOrUndefined; private assertGroupProjection; private compileOrder; private addSolutionBind; private compileOrderExpression; private compileFilter; private compileDisjunctiveFilterBranches; private compileOrFilter; private flattenOrExpressions; private filterValueKey; private compileBinaryFilter; private compileTermTestFilter; private compileFunctionComparisonFilter; private compileFunctionInFilter; private stringLengthVariableOrUndefined; private stringValueVariableOrUndefined; private stringOperandVariable; private stringOperandVariableOrUndefined; private compileLangMatchesFilter; private compileValuesRows; private valuesTerm; private compileNegatedFilter; private expressionArg; private expressionVariable; private expressionVariableOrUndefined; private filterValue; private literalString; private binaryFilter; private reverseBinaryFilter; private negatedBinaryFilter; private stringFilter; private negatedStringFilter; private negateTermTestFilter; private normalizeFunctionCallExpression; private xpathFunctionOperator; }