import type { SqliteDatabase } from '../db/adapter.js'; import { type EntryRecord } from './entries.js'; import { type RecallItem, type RecallResult } from './retrieval.js'; import { type ResolvedProjectWorkspace } from './workspaces.js'; import { type ProjectFingerprint } from '../repository/project-fingerprint.js'; import { type HybridSearchRuntime } from './hybrid-retrieval.js'; export type FederatedOrigin = 'project' | 'ecosystem' | 'global'; export type FederatedScope = 'auto' | FederatedOrigin; export interface FederatedRetrievalPolicy { project: { enabled: boolean; limit: number; }; ecosystem: { enabled: boolean; limit: number; maxWorkspaces: number; maxEntriesPerWorkspace: number; requireApplicability: boolean; }; global: { enabled: boolean; limit: number; }; } export declare const DEFAULT_FEDERATED_POLICY: FederatedRetrievalPolicy; export interface FederatedRecallItem extends RecallItem { origin: FederatedOrigin; sourceWorkspace?: string; sourceProject?: string; selectionReasons: string[]; } export type FederatedRecallMemory = Omit & { items: FederatedRecallItem[]; }; export interface FederatedRecallResult { project: { target: ResolvedProjectWorkspace; memory: RecallResult; } | null; ecosystem: FederatedRecallMemory | null; global: RecallResult | null; combined?: FederatedRecallMemory; securityNotice: string; } export interface FederatedEntry { entry: EntryRecord; origin: FederatedOrigin; score: number; sourceWorkspace?: string; sourceProject?: string; selectionReasons: string[]; } /** SQL equivalent of the persisted marker portion of isExternalSkillReference for an `entries AS e` row. */ export declare function externalSkillReferenceCandidateSql(): string; /** SQL prefilter for an external marker that has an active mapping; exact mapping integrity is decoded semantically. */ export declare function activeExternalSkillReferenceCandidateSql(): string; /** The semantic eligibility predicate shared by ecosystem ranking and context-state binding. */ export declare function isFederatedEcosystemCandidate(database: SqliteDatabase, entry: EntryRecord, options?: { requireApplicability: boolean; }): boolean; export declare function retrieveFederatedMemory(database: SqliteDatabase, input: { query: string; cwd?: string; project?: ResolvedProjectWorkspace; fingerprint?: ProjectFingerprint; scope?: FederatedScope; limit?: number; maxChars?: number; policy?: Partial; readOnly?: boolean; }, runtime?: HybridSearchRuntime): Promise; export declare function federatedEntries(database: SqliteDatabase, input: { project: ResolvedProjectWorkspace; query: string; limit: number; fingerprint?: ProjectFingerprint; }, runtime?: HybridSearchRuntime): Promise; //# sourceMappingURL=federated-retrieval.d.ts.map