/** * Copyright (c) 2018-2024 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Aliaksei Chareshneu */ import { PluginContext } from 'molstar/lib/mol-plugin/context'; import { Source } from '../../common'; import { AnnotationMetadata, GridMetadata, ShapePrimitiveData } from '../volumes-and-segmentations/volseg-api/data'; export interface CVSXFilesData { volumes?: CVSXVolumeData[]; latticeSegmentations?: CVSXLatticeSegmentationData[]; geometricSegmentations?: CVSXGeometricSegmentationData[]; meshSegmentations?: CVSXMeshSegmentationData[]; annotations?: AnnotationMetadata; metadata?: GridMetadata; query: QueryArgs; index: CVSXFilesIndex; } export interface CVSXFileInfo { type: 'volume' | 'lattice' | 'mesh' | 'geometric-segmentation' | 'annotations' | 'metadata' | 'query'; } export interface VolumeFileInfo extends CVSXFileInfo { channelId: string; timeframeIndex: number; } export interface SegmentationFileInfo extends CVSXFileInfo { segmentationId: string; timeframeIndex: number; } export interface LatticeSegmentationFileInfo extends SegmentationFileInfo { } export interface MeshSegmentationFilesInfo extends SegmentationFileInfo { segmentsFilenames: string[]; } export interface GeometricSegmentationFileInfo extends SegmentationFileInfo { } export interface CVSXFilesIndex { volumes: { [filename: string]: VolumeFileInfo; }; latticeSegmentations?: { [filename: string]: LatticeSegmentationFileInfo; }; geometricSegmentations?: { [filename: string]: GeometricSegmentationFileInfo; }; meshSegmentations?: MeshSegmentationFilesInfo[]; annotations: string; metadata: string; query: string; } export interface CVSXGeometricSegmentationData { segmentationId: string; timeframeIndex: number; data: ShapePrimitiveData; } export interface CVSXMeshSegmentationData { segmentationId: string; timeframeIndex: number; data: [string, Uint8Array][]; } export declare class CVSXData { cvsxFilesIndex: CVSXFilesIndex; plugin: PluginContext; constructor(cvsxFilesIndex: CVSXFilesIndex, plugin: PluginContext); volumeDataFromRaw(rawVolumes: [string, Uint8Array][]): CVSXVolumeData[]; latticeSegmentationDataFromRaw(rawData?: [string, Uint8Array][]): CVSXLatticeSegmentationData[] | undefined; meshSegmentationDataFromRaw(rawData?: [string, Uint8Array][]): CVSXMeshSegmentationData[] | undefined; geometricSegmentationDataFromRaw(rawData?: [string, Uint8Array][]): Promise; } export interface CVSXVolumeData { channelId: string; timeframeIndex: number; data: Uint8Array; } export interface CVSXLatticeSegmentationData { segmentationId: string; timeframeIndex: number; data: Uint8Array; } export interface QueryArgs { entry_id: string; source_db: Source; time?: number; channel_id?: string; segmentation_id?: string; detail_lvl?: number; max_points?: number; }