import type { KindRegistry } from '../model/kind-registry.js'; import type { RelationshipRegistry } from '../model/relationship-registry.js'; /** An element extracted from a Cameo project */ export interface CameoElement { /** XMI ID */ xmiId: string; /** Element name */ name: string; /** UML/SysML type (e.g. "uml:Class", "sysml:Block", "sysml:Requirement") */ xmiType: string; /** Applied stereotype names */ stereotypes: string[]; /** Mapped MEMO kind */ memoKind?: string; /** SysML construct */ construct?: string; /** Documentation */ doc: string; /** Tagged values / properties */ attributes: Record; /** Package path */ packagePath: string; } /** A relationship extracted from a Cameo project */ export interface CameoRelationship { /** XMI ID */ xmiId: string; /** Source element XMI ID */ sourceXmiId: string; /** Target element XMI ID */ targetXmiId: string; /** UML/SysML type (e.g. "uml:Dependency", "uml:Association") */ xmiType: string; /** Applied stereotypes */ stereotypes: string[]; /** Mapped MEMO relationship type */ memoRelType?: string; /** Source element name */ sourceName: string; /** Target element name */ targetName: string; } /** Result of importing a Cameo project */ export interface CameoImportResult { /** Extracted and mapped elements */ elements: CameoElement[]; /** Extracted and mapped relationships */ relationships: CameoRelationship[]; /** Warnings */ warnings: string[]; /** Errors */ errors: string[]; /** Statistics */ stats: { totalElements: number; mappedElements: number; unmappedElements: number; totalRelationships: number; mappedRelationships: number; unmappedRelationships: number; }; } /** * Import from Cameo/MagicDraw XMI XML content. * * Parses a simplified XMI structure. For full .mdzip support, * users should first extract the XML via: * unzip model.mdzip com.nomagic.magicdraw.uml_model.model * * Alternatively, accepts a JSON intermediate format (CameoJsonExport). */ export declare function importCameoXml(xmlContent: string, kindRegistry?: KindRegistry, relRegistry?: RelationshipRegistry): CameoImportResult; /** * Import from a Cameo JSON intermediate format. * This is useful when .mdzip has been pre-processed by extraction tools. */ export interface CameoJsonExport { elements?: CameoJsonElement[]; relationships?: CameoJsonRelationship[]; } export interface CameoJsonElement { id: string; name: string; type: string; stereotypes?: string[]; documentation?: string; package?: string; properties?: Record; } export interface CameoJsonRelationship { id: string; sourceId: string; targetId: string; type: string; stereotypes?: string[]; name?: string; } export declare function importCameoJson(jsonData: CameoJsonExport, kindRegistry?: KindRegistry, relRegistry?: RelationshipRegistry): CameoImportResult; /** * Generate SysML v2 text from a Cameo import result. */ export declare function cameoResultToSysml(result: CameoImportResult, packageName: string): string; //# sourceMappingURL=cameo-importer.d.ts.map