import type { AssetCatalogEntry, DemandProfile, RecommendationPolicy, RecommendationReport, SessionIntent } from "../types.js"; /** * Thrown by {@link writeRecommendationReport} when the selected catalog is * absent or empty. The caller should run `discover full` or `discover select` * first to populate the catalog before running `recommend`. */ export declare class CatalogEmptyError extends Error { /** Absolute path of the catalog file that was absent or empty. */ readonly catalogPath: string; constructor(catalogPath: string); } /** * Writes recommendation report to project state. * * @throws {CatalogEmptyError} When `discover/output/catalog.selected.jsonl` is * absent or empty. Callers must run `discover full` or `discover select` first. */ export declare function writeRecommendationReport(projectRoot: string, options?: { policy?: RecommendationPolicy; sessionIntent?: SessionIntent; sessionIntents?: readonly SessionIntent[]; }): Promise; /** * Builds recommendation report from the provided inputs. * Accepts one or more session intents; multiple intents are merged additively * through the demand context so the ranking reflects the combined task shape. * The first intent is recorded as the primary intent in the report output for * backward compatibility. A sessionIntents array is included only when more * than one intent was requested. */ export declare function buildRecommendationReport(entries: AssetCatalogEntry[], demandProfile: DemandProfile | null, policy: RecommendationPolicy, sessionIntents?: SessionIntent | readonly SessionIntent[]): RecommendationReport;