import type { ThreeRendererType } from '../display/types.js';
import type { TextureOptionClasses } from './TextureFactory.js';
import { TextureResource, type TextureResourceSubType } from './TextureResource.js';
import type { TileSetOptions } from './TileSet.js';
export interface TextureStoreItem {
    imageUrl?: string;
    overrideImageUrl?: string;
    atlasUrl?: string;
    tileSet?: TileSetOptions;
    texture?: TextureOptionClasses[];
}
export interface TextureStoreData {
    defaultTextureClasses: TextureOptionClasses[];
    items: Record<string, TextureStoreItem>;
}
export declare class TextureStore {
    #private;
    static load(url: string | URL): Promise<TextureStore>;
    defaultTextureClasses: TextureOptionClasses[];
    get renderer(): ThreeRendererType | undefined;
    set renderer(value: ThreeRendererType | undefined);
    constructor();
    onResource(id: string, callback: (resource: TextureResource) => void): () => void;
    whenReady(): Promise<TextureStore>;
    load(url: string | URL): this;
    parse(data: TextureStoreData): void;
    get(id: string, type: TextureResourceSubType | TextureResourceSubType[], callback: (val: any) => void): () => void;
}
//# sourceMappingURL=TextureStore.d.ts.map