export interface WorkJson { allow_hosts: string[]; expire_at: string; code: string; name?: string; project_id?: string; base_url: string; initial?: WorkInitialJson; model?: WorkModelJson; observers?: WorkObserverJson[]; panorama?: WorkPanoramasJson; } export interface WorkInitialJson { mode?: string; pano_index?: number; longitude?: number; latitude?: number; fov?: number; offset?: number[]; distance?: number; } export interface WorkModelJson { file_url?: string; material_textures?: string[]; material_base_url?: string; up_axis?: string; layers?: WorkModelLayerJson[]; } export interface WorkModelLayerJson { name?: string; type?: string; up_axis: string; tileset_url: string; } export interface WorkObserverJson { index: number; floor_index: number; derived_id: number | string; derived_id_str: string; position: number[]; standing_position: number[]; quaternion: { x: number; y: number; z: number; w: number; }; visible_nodes: number[]; accessible_nodes: number[]; } export interface WorkPanoramasJson { count: number; list: WorkPanoramaJson[]; } export interface WorkPanoramaJson { index: number; active?: boolean; loadable?: boolean; derived_id?: number | string; derived_id_str?: string; size_list: number[]; up: string; down: string; right: string; left: string; front: string; back: string; video?: { source: string; matrix: number[]; size: number[]; }; }