/** * deep-zoom.ts * * Deep Zoom Image (DZI) tile generator. Maps DZI tile coordinates to * OpenSlide region reads. Compatible with viewers like OpenSeadragon. * * Pure TypeScript — no WASM dependency. Operates on a Slide instance. */ import type { Dimensions, DziInfo } from './types.js'; import type { Slide } from './slide.js'; export interface DeepZoomOptions { /** Tile size in pixels (not counting overlap). Default: 254. */ tileSize?: number; /** Overlap in pixels on each edge. Default: 1. */ overlap?: number; /** Only render the non-empty region defined by bounds properties. Default: false. */ limitBounds?: boolean; } export declare class DeepZoomGenerator { private slide; private _tileSize; private _overlap; private _levelCount; private _levelDimensions; private _levelTiles; private _tileCount; private _l0Offset; private _l0Size; constructor(slide: Slide, options?: DeepZoomOptions); /** Number of Deep Zoom levels (0 = smallest, last = full resolution). */ get levelCount(): number; /** Total number of tiles across all levels. */ get tileCount(): number; /** Pixel dimensions at each DZI level. */ get levelDimensions(): readonly Dimensions[]; /** Tile grid dimensions at each DZI level. */ get levelTiles(): readonly { columns: number; rows: number; }[]; /** * Get a single tile as ImageData. * * @param level - DZI level (0 = smallest). * @param col - Column index. * @param row - Row index. * @param options.signal - Cancels the underlying read while it is still * queued in the worker (rejects with OpenSlideAbortError). */ getTile(level: number, col: number, row: number, options?: { signal?: AbortSignal; }): Promise; /** * Generate the DZI XML descriptor string. */ getDzi(format?: 'jpeg' | 'png'): string; /** Structured DZI info (alternative to XML). */ getDziInfo(format?: 'jpeg' | 'png'): DziInfo; /** * Compute tile bounds within the DZI level coordinate space. */ private getTileInfo; /** * Downsample a tile to the target dimensions using nearest-neighbor. * This is a fallback; for better quality, users should use createImageBitmap * in their viewer integration. */ private resampleTile; } //# sourceMappingURL=deep-zoom.d.ts.map