import { type ManifestNamingInput, type ResolvedNamingConfig } from './naming-config.js'; import { type ManifestMergeIntegrityConfig, type ResolvedMergeIntegrity } from './merge-integrity.js'; import { type ManifestProvenanceConfig, type ResolvedProvenanceConfig } from './provenance-config.js'; import { IR, IRDiagnostic } from './ir'; import { ResolverHost } from './module-resolver.js'; export interface CompileProjectOptions { /** Absolute paths of entry .manifest files */ entries: string[]; /** Filesystem abstraction (defaults to node fs host) */ host: ResolverHost; /** Whether to use the IR cache for individual file compilation */ useCache?: boolean; /** Base path for computing relative source paths in provenance */ basePath?: string; /** Naming policy (raw or resolved). Default: normalization off. */ naming?: ManifestNamingInput | ResolvedNamingConfig; /** Config G3 — cross-file name collision / merge policy. Default: error. */ mergeIntegrity?: ManifestMergeIntegrityConfig | ResolvedMergeIntegrity; /** Config G4 — provenance stamp policy (deterministic compiledAt, etc.). */ provenance?: ManifestProvenanceConfig | ResolvedProvenanceConfig; } export interface MultiCompileResult { ir: IR | null; diagnostics: IRDiagnostic[]; sources: Array<{ absPath: string; contentHash: string; }>; } /** * Compile multiple .manifest files into a single merged IR. * * Pipeline: * 1. Resolve dependency graph (topological sort, cycle detection) * 2. Compile each file in dependency order via IRCompiler * 3. Validate cross-file references (entity names, relationships) * 4. Merge all IRs into single output with multi-source provenance */ export declare function compileProjectToIR(options: CompileProjectOptions): Promise; /** * Merge multiple already-compiled IRs into a single deterministic IR (public API). * * Thin wrapper over the internal multi-file merge for callers that already hold * compiled IRs (e.g. composing IRs from separately-compiled sources). Provenance * sources are derived from each input IR's provenance. The result's irHash is NOT * recomputed — call computeIRHash(result) if a content hash is required. */ export declare function mergeIR(irs: IR[]): IR; //# sourceMappingURL=multi-compiler.d.ts.map