import { Texture } from 'three';
import { PowerOf2ImageLoader } from './PowerOf2ImageLoader.js';
import { TextureCoords } from './TextureCoords.js';
import { TextureFactory, type TextureOptionClasses } from './TextureFactory.js';
import { TileSet, type TileSetOptions } from './TileSet.js';
import type { TextureSource } from './types.js';
export interface TileSetData {
    tileSet: TileSet;
    texture: Texture;
    imgEl: TextureSource;
    texCoords: TextureCoords;
}
type OnLoadCallback = (tileSetData: TileSetData) => void;
type OnErrorCallback = ((err: unknown) => void) | undefined;
export declare class TileSetLoader {
    imageLoader: PowerOf2ImageLoader;
    textureFactory: TextureFactory;
    constructor(textureFactory?: TextureFactory, imageLoader?: PowerOf2ImageLoader);
    load(url: string, tileSetOptions: TileSetOptions, textureClasses: Array<TextureOptionClasses> | null | undefined, onLoadCallback: OnLoadCallback, onErrorCallback?: OnErrorCallback): void;
    loadAsync(url: string, tileSetOptions: TileSetOptions, textureClasses?: Array<TextureOptionClasses>): Promise<TileSetData>;
}
export {};
//# sourceMappingURL=TileSetLoader.d.ts.map