import type { Branding } from '../branding.js'; import type { WorkspaceSource } from '../compiler.js'; import type { LikeC4PreparationResult } from './likec4-prepare.js'; import { type GitChangeOverlay, type LikeC4ExportResult } from './likec4-export.js'; export interface LikeC4ProjectDefinition { readonly format: 'yarramate/likec4-project/v1'; readonly id: string; readonly version: string; readonly title: string; readonly mapping: string; readonly kindMapping?: string; readonly views: ReadonlyArray<{ readonly id?: string; readonly projection: string; readonly folder?: string; readonly compare?: { readonly from: string; readonly to: string; }; readonly dynamic?: { readonly steps: ReadonlyArray<{ readonly relationship: string; readonly title?: string; }>; }; readonly deployment?: LikeC4Deployment; }>; } export interface LikeC4Deployment { readonly nodes: ReadonlyArray<{ readonly id: string; readonly kind: 'environment' | 'zone' | 'host' | 'runtime'; readonly name: string; readonly parent?: string; }>; readonly instances: ReadonlyArray<{ readonly id: string; readonly subject: string; readonly node: string; }>; } export declare const loadLikeC4ProjectDefinition: (source: WorkspaceSource) => import("../source-document.js").SourceDocumentResult; export interface PreparedLikeC4ProjectView { readonly id?: string; readonly folder?: string; readonly prepared: Extract; readonly comparison?: { readonly from: string; readonly to: string; }; readonly dynamic?: { readonly steps: ReadonlyArray<{ readonly relationship: string; readonly title?: string; }>; }; readonly deployment?: LikeC4Deployment; } export interface LikeC4ProjectExportOptions { readonly gitChange?: GitChangeOverlay; /** Names the product in the model banner (#546, ADR 0158). */ readonly branding?: Branding; } export declare function exportLikeC4Project(project: LikeC4ProjectDefinition, views: readonly PreparedLikeC4ProjectView[], options?: LikeC4ProjectExportOptions): LikeC4ExportResult;