import type { Matrix3x3, Vec3 } from '../math'; import type { ParsedStructure } from '../structure/parse'; export interface DataRange { min: number; max: number; abs_max: number; mean: number; } export interface VolumetricData { grid: number[][][]; grid_dims: Vec3; lattice: Matrix3x3; origin: Vec3; data_range: DataRange; data_order?: `x_fastest` | `z_fastest`; periodic: boolean; label?: string; } export interface VolumetricFileData { structure: ParsedStructure; volumes: VolumetricData[]; } export interface IsosurfaceLayer { isovalue: number; color: string; opacity: number; visible: boolean; show_negative: boolean; negative_color: string; } export interface IsosurfaceSettings { isovalue: number; opacity: number; positive_color: string; negative_color: string; show_negative: boolean; wireframe: boolean; halo: number; layers?: IsosurfaceLayer[]; } export declare const LAYER_COLORS: readonly ["#3b82f6", "#ef4444", "#22c55e", "#a855f7", "#f97316", "#06b6d4", "#eab308", "#ec4899"]; export declare function grid_data_range(grid: number[][][]): DataRange; export declare function pad_periodic_grid(grid: number[][][], dims: Vec3, pad_fraction: number): { grid: number[][][]; dims: Vec3; offset: Vec3; }; export declare function downsample_grid(grid: number[][][], dims: Vec3, max_points?: number): { grid: number[][][]; dims: Vec3; factor: number; }; export declare const DEFAULT_ISOSURFACE_SETTINGS: IsosurfaceSettings; export declare function auto_isosurface_settings(data_range: DataRange): IsosurfaceSettings; export declare function generate_layers(data_range: DataRange, n_layers: number): IsosurfaceLayer[]; export declare function tile_volumetric_data(volume: VolumetricData, scaling: Vec3): VolumetricData;