/** * catalog-generation — demand profile, catalog, and selection output writers * for the discover command group (#434). * * Extracted from discover.ts so the CLI dispatch module stays under the * ~600-line real-logic budget: demand scanning, the bounded repo-harvest * catalog loop (with the exhaustive per-kind dispatch), and the selection * output pipeline (relevance filtering, duplicate grouping, per-source cap, * rejection sampling, and the written report set). */ import type { SourceHealthReport } from "./source-health.js"; import { type SourceSyncState } from "./source-sync.js"; import type { AssetCatalogEntry, DemandProfile, SelectionReport, SourceDefinition } from "../../types.js"; /** * Scans the workspace for demand signals, writes the demand profile and the * unknown-signal backlog, and returns the profile for downstream phases. */ export declare function generateDemandProfile(scanRoot: string, projectRoot: string, maxBytes?: number): Promise; /** * Builds the discovery catalog: harvests non-repo sources through the * exhaustive per-kind dispatcher, runs the bounded repo-harvest batch from * the persisted offset, merges cached remote entries, enriches trust, and * writes the sorted catalog plus utilization and remote-harvest state. */ export declare function generateCatalog(projectRoot: string): Promise<{ catalogEntries: AssetCatalogEntry[]; enabledSources: SourceDefinition[]; sourceSyncState: SourceSyncState; }>; /** * Runs the selection pipeline: demand-relevance filter, duplicate grouping, * per-source cap, stratified rejection sampling, and the written output set * (selected/rejected JSONL, selection report, fingerprints, source * verification/health reports, candidate queue). */ export declare function generateSelectionOutputs(projectRoot: string, options?: { quietMode?: boolean; summaryMode?: boolean; }): Promise<{ selectionReport: SelectionReport; selectedEntries: AssetCatalogEntry[]; rejectedEntries: AssetCatalogEntry[]; sourceHealthReport: SourceHealthReport; }>;