import type { IEmbedder, ISkillPluginHost, ISkillSource, ISkillsRagBackendProvider, ISkillsStoreProvider } from '@mcp-abap-adt/llm-agent'; /** RECALL-ONLY construction: serves an already-materialised catalog through a READ-ONLY * backend provider (least privilege — no source, no store, no write/reconcile API). The * served collections are materialised out-of-band by a SEPARATE ingest job. */ export interface RecallHostDeps { backendProvider: ISkillsRagBackendProvider; /** Serving embedder — text query embed + lazy dimension probe. */ embedder: IEmbedder; embeddingSpaceId: string; retrievalSchemaVersion: number; dimension?: number; /** The collections this host serves; each MUST exist in the backend's catalog. * OMIT to serve ALL (non-tombstoned) collections present in the catalog. */ serveCollections?: readonly string[]; /** Threaded into makeCompatibleSkillsRag in rag() (Qdrant time-grace). */ recallTimeoutMs?: number; } export type SkillPluginHostDeps = IngestHostDeps | RecallHostDeps; export interface IngestHostDeps { sources: ReadonlyArray<{ id: string; source: ISkillSource; }>; storeProvider: ISkillsStoreProvider; /** Serving embedder (also used to vectorise upserts via the provider). */ embedder: IEmbedder; embeddingSpaceId: string; retrievalSchemaVersion: number; dimension?: number; strict?: boolean; /** Default 3. */ catalogCasMaxAttempts?: number; /** Default true; false = an ingest-only job (skips the reload set-guard). */ servingMode?: boolean; /** Threaded into makeCompatibleSkillsRag in rag() (Qdrant time-grace). */ recallTimeoutMs?: number; /** Injected clock for deterministic tests (default Date.now). */ now?: () => number; } export declare function makeSkillPluginHost(deps: SkillPluginHostDeps): ISkillPluginHost; //# sourceMappingURL=skill-plugin-host.d.ts.map