// loaders.gl // SPDX-License-Identifier: MIT // Copyright (c) vis.gl contributors import {DTYPE_LOOKUP} from './lib/ome/ome-utils'; export type Dtype = (typeof DTYPE_LOOKUP)[keyof typeof DTYPE_LOOKUP]; export type TypedArray = InstanceType<(typeof globalThis)[`${Dtype}Array`]>; export interface PixelData { data: TypedArray; width: number; height: number; } export type PixelSourceSelection = { [K in S[number]]: number; }; export interface RasterSelection { selection: PixelSourceSelection; signal?: AbortSignal; } export interface TileSelection { x: number; y: number; selection: PixelSourceSelection; signal?: AbortSignal; } interface PhysicalSize { size: number; unit: string; } export interface PixelSourceMeta { physicalSizes?: Record; photometricInterpretation?: number; } export type Labels = [...S, 'y', 'x'] | [...S, 'y', 'x', '_c']; /** * Interface to load tiles from a data source */ export interface PixelSource { /** Loads a 2D plane */ getRaster(sel: RasterSelection): Promise; /** Loads a tile */ getTile(sel: TileSelection): Promise; onTileError(err: Error): void; shape: number[]; dtype: Dtype; labels: Labels; tileSize: number; meta?: PixelSourceMeta; }