import * as THREE from "three";
import { CubeFace } from '../types/cube';
import { ImageURLOptions } from '../utils/imageURL';
import { Fetcher, NetworkResponse, NetWorkMeta } from "../utils/ajax";
export declare class TextureLoader {
    loadTexture(source: string, options: {
        imageURL?: {
            transform?: (source: string, options: ImageURLOptions) => string;
            options?: ImageURLOptions;
        };
        flipY?: boolean;
        format?: THREE.PixelFormat;
        encoding?: THREE.TextureEncoding;
        minFilter?: THREE.TextureFilter;
        magFilter?: THREE.TextureFilter;
        generateMipmaps?: boolean;
        wrapS?: THREE.Wrapping;
        wrapT?: THREE.Wrapping;
        maxSize?: THREE.Vector2;
        viaAjax?: boolean;
        timeout?: number;
        fetcher: Fetcher;
    }, onLoad?: (response: NetworkResponse<THREE.Texture>) => void, onError?: (error: Error) => void, onProgress?: (percent: number) => void, renderer?: THREE.WebGLRenderer): Promise<NetworkResponse<THREE.Texture>>;
    loadCubeTexture(sources: Record<CubeFace, string>, options: {
        imageURL?: {
            transform?: (source: string, options: ImageURLOptions) => string;
            options?: ImageURLOptions;
        };
        format?: THREE.PixelFormat;
        minFilter?: THREE.TextureFilter;
        magFilter?: THREE.TextureFilter;
        generateMipmaps?: boolean;
        wrapS?: THREE.Wrapping;
        wrapT?: THREE.Wrapping;
        viaAjax?: boolean;
        timeout?: number;
        fetcher: Fetcher;
    }, onLoad: ((response: NetworkResponse<THREE.CubeTexture, NetWorkMeta[]>) => void) | undefined, onError: ((error: Error) => void) | undefined, onProgress: ((percent: number) => void) | undefined, renderer: THREE.WebGLRenderer): Promise<NetworkResponse<THREE.CubeTexture, NetWorkMeta[]>>;
}
