import { ar as Volume, z as NiftiHeader } from '../nvdocument-Bc0slj3Z.js';
import { vec3, mat4, vec4 } from 'gl-matrix';
import 'nifti-reader-js';

declare const nice: (x: number, round: boolean) => number;

declare function readFileAsDataURL(input: File | FileSystemFileEntry): Promise<string>;

declare function img2ras16(volume: Volume): Int16Array;
declare function unpackFloatFromVec4i(val: Uint8Array): number;
/**
 * Scale the raw intensity values by the header scale slope and intercept
 * @param hdr - the header object
 * @param raw - the raw intensity values
 * @returns the scaled intensity values
 * @internal
 */
declare function intensityRaw2Scaled(hdr: NiftiHeader, raw: number): number;

declare function tickSpacing(mn: number, mx: number): number[];
declare function deg2rad(deg: number): number;
declare function negMinMax(min: number, max: number, minNeg: number, maxNeg: number): [number, number];
declare function clamp(value: number, min: number, max: number): number;

declare function swizzleVec3(vec: vec3, order?: number[]): vec3;
declare function isRadiological(mtx: mat4): number;
declare function unProject(winX: number, winY: number, winZ: number, mvpMatrix: mat4): vec4;

export { clamp, deg2rad, img2ras16, intensityRaw2Scaled, isRadiological, negMinMax, nice, readFileAsDataURL, swizzleVec3, tickSpacing, unProject, unpackFloatFromVec4i };
