import type { LLMContext, RepoStructure } from '../analyzer/artifact-generator.js'; export interface DomainEvidenceBundle { name: string; files: string[]; definingFiles: string[]; supportingFiles: string[]; candidateDecisions: NonNullable; candidateDecisionSummary?: RepoStructure['domainDecisionSummary']; schemaFiles: string[]; serviceFiles: string[]; apiFiles: string[]; signatures: NonNullable; supportingSignatures: NonNullable; schemas: RepoStructure['schemas']; routes: NonNullable['routes']; } export interface EvidenceFile { path: string; content: string; } /** Resolve user-facing domain names to one canonical, collision-free identity. */ export declare function resolveDomainSelection(available: readonly string[], requested: readonly string[]): string[]; /** * Keep a deterministic domain bundle whole whenever possible. If it exceeds * the configured evidence budget, split only at file boundaries in sorted * path order. This preserves stable prompts while avoiding the former * arbitrary AST/file chunk loop. */ export declare function partitionEvidenceFiles(files: EvidenceFile[], maxChars: number): EvidenceFile[][]; /** * The deterministic routing contract for stages 1–4. A file can belong to a * domain without being classified as schema/API; service is the residual * source role so the pipeline never asks an LLM to choose downstream inputs. */ export declare function buildDomainEvidence(repo: RepoStructure, context: LLMContext): DomainEvidenceBundle[]; //# sourceMappingURL=domain-evidence.d.ts.map