export type NodeType = 'App' | 'Package' | 'Page' | 'Component' | 'Module'; export type LinkType = 'Structure' | 'Import' | 'Style' | 'Template' | 'Config' | 'Resource' | 'WorkerEntry'; export interface GraphNode { id: string; type: NodeType; label: string; properties?: { absolutePath?: string; basePath?: string; root?: string; path?: string; fileSize?: number; fileExt?: string; fileCount?: number; totalSize?: number; fileTypes?: Record; sizeByType?: Record; structuralParentId?: string; referredBy?: string[]; [key: string]: any; }; } export interface GraphLink { source: string; target: string; type: LinkType; dependencyType?: string; properties?: Record; } export interface ProjectStructure { nodes: GraphNode[]; links: GraphLink[]; rootNodeId: string | null; miniappRoot: string; }