import { LoadingManager, PMREMGenerator, Texture } from 'three';
import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader';
import { EXRLoader } from 'three/examples/jsm/Addons.js';
import * as THREE from "three";
import { ReflectionMapDto } from '../dto/reflection-map.dto';
export interface IEnvironment {
    map: Texture | null;
    intensity: number;
}
export declare class EnvironmentHelper {
    disposed: boolean;
    pmremGenerator: PMREMGenerator;
    loadingManager: LoadingManager;
    exrLoader: EXRLoader;
    rgbeLoader: RGBELoader;
    cachedEnvironmentMap: {
        [key: string]: IEnvironment;
    };
    constructor(renderer: THREE.WebGLRenderer);
    dispose(): void;
    loadEnvironmentFromPath(path: string, progressCallback?: (progress: number) => void): Promise<IEnvironment>;
    loadEXREnvironmentFromPath(path: string, progressCallback?: (e: ProgressEvent) => void): Promise<IEnvironment>;
    getFromCacheOrLoad(path: string, progressCallback?: (progress: number) => void): Promise<IEnvironment>;
    preloadDefaultEnvironment(progressCallback?: (progress: number) => void): Promise<IEnvironment>;
    getEnvironmentForMaterial(materialName: string, progressCallback?: (progress: number) => void): Promise<IEnvironment | undefined>;
}
export declare function disposeEnvMapsCache(): void;
export declare function getFromCacheOrLoadEnvMapList(): Promise<ReflectionMapDto[] | (ReflectionMapDto & any[])>;
export declare function resolveEnvMapPath(envMapName: string): Promise<string>;
