/** * LLM-powered principles synthesizer. * * synthesizePrinciples() takes a DiscoveryReport produced by scanProject() * and makes a single LLM call to produce a comprehensive principles.md * document tailored to the scanned project. * * The returned markdown is ready to write to .bober/principles.md. */ import type { BoberConfig } from "../config/schema.js"; import type { DiscoveryReport } from "./types.js"; /** * Validate the synthesized markdown contains required structure. * Returns true if valid; false otherwise. Never throws. */ export declare function validatePrinciplesMarkdown(markdown: string): boolean; /** * Make a single LLM call to synthesize a DiscoveryReport into a * comprehensive principles.md markdown document. * * If the LLM response fails validation (missing headings), the raw * response is returned anyway — never throws on validation failure. * * @param report DiscoveryReport produced by scanProject(). * @param projectRoot Absolute path to the project root (used in prompt). * @param config Full BoberConfig — uses planner provider/model/endpoint. * @returns Markdown string starting with "# Project Principles". */ export declare function synthesizePrinciples(report: DiscoveryReport, projectRoot: string, config: BoberConfig): Promise; //# sourceMappingURL=synthesizer.d.ts.map