import { IVector3 } from '@easytwin/runtime'; export type AssetType = 'folder' | 'model' | 'material' | 'image' | 'texture'; export type ModelInfo = { size: IVector3; center: IVector3; materialCount: number; textureCount: number; meshCount: number; nodeCount: number; triangleCount: number; fileSize: number; textures: { name: string; width: number; height: number; }[]; errors: { message: string; canOptimize: boolean; }[] | string[]; warnings: { message: string; canOptimize: boolean; }[] | string[]; }; export interface AssetJson { id: string; name: string; type: AssetType; parentId: string; thumb: string; content: Record; createdAt: string; } export interface AssetItem { type: AssetType; name: string; url: string | undefined; id: string; thumb: string; parentId: string | null; content: AssetTypeToContentMap[T]; createdAt: string; children: AssetItem[]; } export interface LoadingAssetItem { type: AssetType; name: string; id: string; parentId: string | null; progress: number; status: 'loading' | 'finished' | 'abort'; } export interface ImageInfo { size: { x: number; y: number; }; fileSize: number; ext: string; } export type MaterialInfo = any; export declare const MaterialTypeToString: Record; export interface AssetTypeToContentMap extends Record> { model: { url: string; info: ModelInfo | undefined; }; folder: Record; material: { url: string | undefined; info: MaterialInfo; }; image: { url: string; info: ImageInfo; }; }