/** * ExecutionStrategy Factory * * Creates the appropriate execution strategy based on table configuration. * - Tables with sparqlEndpoint -> SparqlStrategy * - Tables without sparqlEndpoint -> LdpStrategy */ import type { ASTToSPARQLConverter } from '../ast-to-sparql'; import type { QueryCondition } from '../query-conditions'; import type { ResourceResolver } from '../resource-resolver'; import type { PodTable } from '../schema'; import type { ComunicaSPARQLExecutor } from '../sparql-executor'; import type { SPARQLQueryEngineFactory } from '../sparql-engine'; import type { UriResolver } from '../uri'; import { LdpStrategy } from './ldp-strategy'; import type { LdpExecutor } from './ldp-executor'; import type { ExecutionStrategy, ExecutionStrategyFactory } from './types'; export interface StrategyFactoryDependencies { sparqlExecutor: ComunicaSPARQLExecutor; sparqlConverter: ASTToSPARQLConverter; sessionFetch: typeof fetch; podUrl: string; createQueryEngine?: SPARQLQueryEngineFactory; ldpExecutor: LdpExecutor; uriResolver: UriResolver; getResolver: (table: PodTable) => ResourceResolver; listContainerResources: (containerUrl: string) => Promise; findSubjectsForCondition: (condition: QueryCondition, table: PodTable, resourceUrl: string) => Promise; } export declare class ExecutionStrategyFactoryImpl implements ExecutionStrategyFactory { private deps; private ldpStrategy; private sparqlStrategy; constructor(deps: StrategyFactoryDependencies); setPodUrl(podUrl: string): void; getStrategy(table: PodTable): ExecutionStrategy; getLdpStrategy(): LdpStrategy; private getLdpStrategyInternal; private getSparqlStrategy; static getMode(table: PodTable): 'ldp' | 'sparql'; } //# sourceMappingURL=strategy-factory.d.ts.map