import { Texture, TextureLoader, type ColorSpace, type TextureFilter } from 'three';
import type { ThreeRendererType } from '../display/types.js';
import type { TextureSource } from './types.js';
export interface TextureOptions {
    magFilter: TextureFilter;
    minFilter: TextureFilter;
    anisotrophy: number;
    flipY: boolean;
    colorSpace: ColorSpace;
}
declare const TextureClasses: {
    anisotrophy: {
        anisotrophy: number;
    };
    'anisotrophy-2': {
        anisotrophy: number;
    };
    'anisotrophy-4': {
        anisotrophy: number;
    };
    'no-anisotrophy': {
        anisotrophy: number;
    };
    nearest: {
        magFilter: 1003;
        minFilter: 1003;
    };
    'mag-nearest': {
        magFilter: 1003;
    };
    'min-nearest': {
        minFilter: 1003;
    };
    linear: {
        magFilter: 1006;
        minFilter: 1006;
    };
    'mag-linear': {
        magFilter: 1006;
    };
    'min-linear': {
        minFilter: 1006;
    };
    flipy: {
        flipY: boolean;
    };
    'no-flipy': {
        flipY: boolean;
    };
    srgb: {
        colorSpace: "srgb";
    };
    'linear-srgb': {
        colorSpace: "srgb-linear";
    };
};
export type TextureOptionClasses = keyof typeof TextureClasses;
export declare class TextureFactory {
    #private;
    textureLoader: TextureLoader;
    constructor(maxAnisotrophyOrRenderer?: number | ThreeRendererType, defaultClassNames?: Array<TextureOptionClasses>, defaultOptions?: Partial<TextureOptions>);
    getOptions(classNames: Array<TextureOptionClasses>): Partial<TextureOptions>;
    create(source: TextureSource, ...classNames: Array<TextureOptionClasses>): Texture;
    update(texture: Texture, ...classNames: Array<TextureOptionClasses>): Texture;
    load(url: string, ...classNames: Array<TextureOptionClasses>): Texture;
}
export {};
//# sourceMappingURL=TextureFactory.d.ts.map