import { type AdapterMapping } from '../adapter-mapping.js'; import { type Diagnostic, type WorkspaceSource } from '../compiler.js'; import { type ProjectionResult } from '../projection.js'; import { type LikeC4ExportDiagnostic } from './likec4-export.js'; import { type LikeC4KindMapping } from './likec4-kind-mapping.js'; export interface LikeC4PreparationInput { readonly sources: readonly WorkspaceSource[]; readonly projection: WorkspaceSource; readonly subjectMapping: WorkspaceSource; readonly kindMapping?: WorkspaceSource; readonly comparison?: { readonly from: string; readonly to: string; }; readonly vocabulary: 'bundled' | 'consumer'; /** * Gate mode. Rendering a relationship needs no external identity — views * select it by metadata — but `map --sync` still writes one, so only a * check answering "would sync change anything" requires the entry. */ readonly requireMappedRelationships?: boolean; } export type LikeC4PreparationDiagnostic = Diagnostic | LikeC4ExportDiagnostic; export type LikeC4PreparationResult = { readonly ok: true; readonly source: string; readonly projection: ProjectionResult; readonly subjectMapping: AdapterMapping; readonly kindMapping?: LikeC4KindMapping; } | { readonly ok: false; readonly diagnostics: readonly LikeC4PreparationDiagnostic[]; }; export declare function prepareLikeC4Export(input: LikeC4PreparationInput): LikeC4PreparationResult;