import { CameraSettings, CharacterSettings } from './character-settings'; export interface Resource { type: string; local: string; remote: string; } export interface ResourceHolder { resource?: Resource; /** Compressed model resource (~30% of original size, with minor quality degradation). */ xrResource?: Resource; } export interface Models { shape?: ResourceHolder; gsStandard?: ResourceHolder; gsHigh?: ResourceHolder; gsUltra?: ResourceHolder; } export interface Animations { frameIdle?: ResourceHolder; frameMono?: ResourceHolder; audioMono?: ResourceHolder; } export interface CustomAnimation { key: string; pbUrl: string; wavUrl: string; remark: string; } export interface CharacterAsset { characterId: string; version: string; camera?: ResourceHolder; models?: Models; animations?: Animations; background?: ResourceHolder; characterSettings?: { [key: string]: any; }; customAnimations: CustomAnimation[]; } /** * Character metadata */ export type CharacterMeta = CharacterAsset & { characterSettings?: CharacterSettings; }; export type PreloadResources = { version: string; } & T; export type PreloadCameraSettings = PreloadResources<{ camera: CameraSettings; }>; /** * Resource type enumeration */ export declare enum ResourceType { CAMERA = "camera", ANIMATION_IDLE = "frameIdle", MODEL_SHAPE = "shape", MODEL_GS = "gsStandard" } /** * Extract all resource URLs */ export declare function extractResourceUrls(meta: CharacterMeta): Record;