import type { LlmClient } from "./llm.js"; import type { Spec, RelationshipVerdict } from "@slowcook-ai/core"; export interface RelationshipInput { issueTitle: string; issueBody: string; activeSpecs: Spec[]; } export interface RelationshipOptions { llm: LlmClient; model: string; } export interface RelationshipResult { verdict: RelationshipVerdict; costUsd: number; usage: { inputTokens: number; outputTokens: number; cacheReadTokens: number; cacheCreateTokens: number; }; model: string; } export declare function analyzeRelationship(input: RelationshipInput, options: RelationshipOptions): Promise; export declare function parseVerdict(raw: string): RelationshipVerdict; /** * Format a spec reference for user-facing prose (issue comments, PR bodies). * Prefers GitHub's native issue-number reference (\`#N\`) which auto-renders * as a hyperlink. Falls back to the internal \`story-N\` id if the spec has * no \`source_issue\` recorded. * * Inside YAML specs and internal slowcook state, keep using \`story-N\` — * it's the stable canonical identifier. This function is only for prose. */ export declare function specRefForProse(spec: Spec): string; /** Comment body posted to the issue when relationship analysis surfaces a conflict. */ export declare function overlapCommentBody(verdict: Extract, activeSpecs?: Spec[]): string; /** * Comment body for the follow_up verdict — posted informationally, does NOT * halt refinement. Tells the PM "I noticed this builds on X, will cite it in * the resulting spec, proceeding with refinement now." */ export declare function followUpCommentBody(verdict: Extract, activeSpecs?: Spec[]): string; export declare function contradictionCommentBody(verdict: Extract, hasChangeOfMind: boolean, activeSpecs?: Spec[]): string; //# sourceMappingURL=relationship.d.ts.map