/** * ProjectManager.ts * * Project-level management: project files, scene references, * asset dependency tracking, and build configuration. * * @module scene */ export interface SceneReference { id: string; name: string; path: string; isStartScene: boolean; lastModified: number; } export interface ProjectAssetRef { id: string; type: string; path: string; usedByScenes: string[]; sizeBytes: number; } export interface BuildConfig { target: 'development' | 'production' | 'debug'; optimizeAssets: boolean; minifyScripts: boolean; bundleAssets: boolean; outputDir: string; } export interface ProjectFile { name: string; version: string; createdAt: number; modifiedAt: number; scenes: SceneReference[]; assets: ProjectAssetRef[]; buildConfig: BuildConfig; settings: Record; } export declare class ProjectManager { private project; constructor(name: string, version?: string); addScene(ref: Omit): void; removeScene(sceneId: string): boolean; getScene(sceneId: string): SceneReference | undefined; getScenes(): SceneReference[]; getStartScene(): SceneReference | undefined; setStartScene(sceneId: string): boolean; addAsset(ref: ProjectAssetRef): void; removeAsset(assetId: string): boolean; getAsset(assetId: string): ProjectAssetRef | undefined; getAssets(): ProjectAssetRef[]; /** * Find unused assets (not referenced by any scene). */ findUnusedAssets(): ProjectAssetRef[]; /** * Get total project size in bytes. */ getTotalAssetSize(): number; setBuildConfig(config: Partial): void; getBuildConfig(): BuildConfig; setSetting(key: string, value: unknown): void; getSetting(key: string): T | undefined; serialize(): string; static deserialize(json: string): ProjectManager; getProjectFile(): ProjectFile; } //# sourceMappingURL=ProjectManager.d.ts.map