import { type Texture } from 'three';
import type { ThreeRendererType } from '../display/types.js';
import type { TextureAtlas } from './TextureAtlas.js';
import { TextureCoords } from './TextureCoords.js';
import { TextureFactory, type TextureOptionClasses } from './TextureFactory.js';
import { type TexturePackerJsonData } from './TexturePackerJson.js';
import { TileSet, type TileSetOptions } from './TileSet.js';
export type TextureResourceType = 'image' | 'atlas' | 'tileset';
export type TextureResourceSubType = 'imageCoords' | 'atlas' | 'tileSet' | 'texture';
export declare class TextureResource {
    #private;
    static fromImage(id: string, imageUrl: string, textureClasses?: TextureOptionClasses[]): TextureResource;
    static fromTileSet(id: string, imageUrl: string, tileSetOptions: TileSetOptions, textureClasses?: TextureOptionClasses[]): TextureResource;
    static fromAtlas(id: string, atlasUrl: string, overrideImageUrl?: string, textureClasses?: TextureOptionClasses[]): TextureResource;
    readonly id: string;
    readonly type: TextureResourceType;
    refCount: number;
    get imageUrl(): string | undefined;
    set imageUrl(val: string | undefined);
    get imageCoords(): TextureCoords | undefined;
    set imageCoords(val: TextureCoords | undefined);
    get atlasUrl(): string | undefined;
    set atlasUrl(value: string | undefined);
    get atlasJson(): TexturePackerJsonData | undefined;
    set atlasJson(value: TexturePackerJsonData | undefined);
    get overrideImageUrl(): string | undefined;
    set overrideImageUrl(value: string | undefined);
    get atlas(): TextureAtlas | undefined;
    set atlas(value: TextureAtlas | undefined);
    get tileSetOptions(): TileSetOptions | undefined;
    set tileSetOptions(value: TileSetOptions | undefined);
    get tileSet(): TileSet | undefined;
    set tileSet(value: TileSet | undefined);
    get textureClasses(): TextureOptionClasses[] | undefined;
    set textureClasses(value: TextureOptionClasses[] | undefined);
    get textureFactory(): TextureFactory | undefined;
    set textureFactory(value: TextureFactory | undefined);
    get texture(): Texture | undefined;
    set texture(value: Texture | undefined);
    get renderer(): ThreeRendererType | undefined;
    set renderer(value: ThreeRendererType | undefined);
    constructor(id: string, type: TextureResourceType);
    rendererChanged(renderer: ThreeRendererType | undefined): void;
    load(): TextureResource;
}
//# sourceMappingURL=TextureResource.d.ts.map