import type { QueryPlan } from './query-plan.js'; import { type EvidencePack } from './evidence-pack.js'; import type { AdapterId, AdapterResult } from './adapters/types.js'; import type { BraveSearchResponse, BraveSearchOptions } from './web-search.js'; export interface OrchestratorDeps { enabledAdapters: AdapterId[]; brave: { search: (query: string, options?: BraveSearchOptions) => Promise; }; adapters: { arxiv: (query: string) => Promise; semanticScholar: (query: string) => Promise; github: (query: string, kind: 'repo' | 'code') => Promise; openalex: (query: string) => Promise; crossref: (query: string) => Promise; pubmed: (query: string) => Promise; }; perAdapterTimeoutMs: number; totalDeadlineMs: number; concurrencyCap: number; } type Task = { kind: 'brave'; query: string; freshness?: string; siteFilter?: string; } | { kind: 'brave_news'; query: string; freshness?: string; siteFilter?: string; } | { kind: 'arxiv'; query: string; } | { kind: 'ss'; query: string; } | { kind: 'gh_repo'; query: string; } | { kind: 'gh_code'; query: string; } | { kind: 'openalex'; query: string; } | { kind: 'crossref'; query: string; } | { kind: 'pubmed'; query: string; }; /** Per-adapter concurrency limits per spec (rate-limiting, timeouts, and error recovery). */ declare const ADAPTER_CONCURRENCY: Record; export declare function runOrchestrator(plan: QueryPlan, deps: OrchestratorDeps): Promise; export { ADAPTER_CONCURRENCY }; //# sourceMappingURL=orchestrator.d.ts.map