import { Box3, Vector2, Vector3 } from "three"; import { type ImageInfo } from "../ImageInfo.js"; import { LoadSpec } from "./IVolumeLoader.js"; export declare const MAX_ATLAS_EDGE = 4096; /** Converts a full spatial or temporal unit name supported by OME-Zarr to its unit symbol */ export declare function unitNameToSymbol(unitName?: string): string | null; export declare function computePackedAtlasDims(z: number, tw: number, th: number): Vector2; /** Picks the largest scale level that can fit into a texture atlas with edges no longer than `maxAtlasEdge`. */ export declare function estimateLevelForAtlas(spatialDimsZYX: [number, number, number][], maxAtlasEdge?: number): number | undefined; type ZYX = [number, number, number]; export declare function scaleDimsToSubregion(subregion: Box3, dims: ZYX): ZYX; export declare function scaleMultipleDimsToSubregion(subregion: Box3, dims: ZYX[]): ZYX[]; /** * Picks the best scale level to load based on scale level dimensions and a `LoadSpec`. This calls * `estimateLevelForAtlas`, then accounts for `LoadSpec`'s scale level picking properties: * - `multiscaleLevel` imposes a minimum scale level (or *maximum* resolution level) to load * - `maxAtlasEdge` sets the maximum size of the texture atlas that may be produced by a load * - `scaleLevelBias` offsets the scale level index after the optimal level is picked based on `maxAtlasEdge` * * This function assumes that `spatialDimsZYX` has already been appropriately scaled to match `loadSpec`'s `subregion`. */ export declare function pickLevelToLoadUnscaled(loadSpec: LoadSpec, spatialDimsZYX: ZYX[]): number; /** * Picks the best scale level to load based on scale level dimensions and a `LoadSpec`. This calls * `estimateLevelForAtlas` and accounts for all properties of `LoadSpec` considered by * `pickLevelToLoadUnscaled`, and additionally scales the dimensions of the scale levels to account for the * `LoadSpec`'s `subregion` property. */ export declare function pickLevelToLoad(loadSpec: LoadSpec, spatialDimsZYX: ZYX[]): number; /** Given the size of a volume in pixels, convert a `Box3` in the 0-1 range to pixels */ export declare function convertSubregionToPixels(region: Box3, size: Vector3): Box3; /** * Return the subset of `container` specified by `region`, assuming that `region` contains fractional values (between 0 * and 1). i.e. if `container`'s range on the X axis is 0-4 and `region`'s is 0.25-0.5, the result will have range 1-2. */ export declare function composeSubregion(region: Box3, container: Box3): Box3; export declare function buildDefaultMetadata(rawImageInfo: ImageInfo): Record; export {};