import { type FastifyInstance } from "fastify"; import type { CollectorConfig } from "./config.js"; import type { CollectorStore } from "./store.js"; import { type LiveBus } from "./liveBus.js"; import { type ProjectMetadataProvider } from "./projectMetadata.js"; export interface BuildAppDeps { store: CollectorStore; config: CollectorConfig; /** * In-process live event bus (ADR 0032). Injectable for tests; a default * in-process bus is created from `config.liveWindowMs` when omitted. */ liveBus?: LiveBus; /** * Outbound HTTP for subscription webhooks (#311). Injectable so a test can * assert the signed body without a real socket; defaults to global `fetch`. */ fetchImpl?: typeof fetch; /** Pass `true` (or Fastify logger options) to enable request logging. */ logger?: boolean; /** * Source of the glossary and recent annotations the project context document * reports (ADR 0051 §5). Defaults to reading them from `store` through the * metadata write path of #310 — see `projectMetadata.ts`. Injectable so a * test can supply its own without a store. */ projectMetadata?: ProjectMetadataProvider; } /** * Build the collector Fastify instance. Pure factory — takes its dependencies so * it can be exercised with `app.inject()` and a fake store in tests, and so the * store/DB stays swappable. */ export declare function buildApp(deps: BuildAppDeps): Promise; //# sourceMappingURL=app.d.ts.map