import { Data3DTexture, Vector3 } from 'three';
import { CoreBaseLoader } from '../_Base';
import { BaseNodeType } from '../../../engine/nodes/_Base';
export interface SDFLoaderOptions {
}
export declare class SDFLoader extends CoreBaseLoader<string> {
    protected _node?: BaseNodeType | undefined;
    constructor(url: string, _node?: BaseNodeType | undefined);
    load(successCallback: (geometry: Data3DTexture) => void, progressCallback: (() => void) | undefined, errorCallback: (error: ErrorEvent) => void | undefined): Promise<void>;
}
interface MetadataOptions {
    boundMin: Vector3;
    boundMax: Vector3;
    resolution: Vector3;
}
export interface SDFDataContainer {
    width: number;
    height: number;
    depth: number;
    boundMinx: number;
    boundMiny: number;
    boundMinz: number;
    boundMaxx: number;
    boundMaxy: number;
    boundMaxz: number;
    resolutionx: number;
    resolutiony: number;
    resolutionz: number;
    data: Float32Array;
}
export declare function addSDFMetadataToContainer(texture: Data3DTexture, options: MetadataOptions): void;
export declare function readSDFMetadataFromContainer(texture: Data3DTexture): SDFDataContainer | undefined;
export declare function saveSDFMetadata(texture: Data3DTexture): Float32Array | undefined;
export declare function createSDFTexture(width: number, height: number, depth: number): Data3DTexture;
export {};
