import type { Object3D } from 'three/webgpu';
import type { TileSet } from '../../texture/TileSet.js';
import type { IMap2DTileCoords, IMap2DTileDataProvider, IMapTileFactory } from '../types.js';
import type { TileSprite } from './descriptors.js';
import type { TileSprites } from './TileSprites.js';
export declare class TileSpritesFactory implements IMapTileFactory<TileSprite> {
    readonly tileSprites: TileSprites;
    tileSet?: TileSet;
    tileDataProvider?: IMap2DTileDataProvider;
    constructor(tileSprites: TileSprites, tileSet?: TileSet, tileDataProvider?: IMap2DTileDataProvider);
    addToNode(node: Object3D): void;
    removeFromNode(node: Object3D): void;
    freeTileSprite(sprite: TileSprite): void;
    createTile(tileCoords: IMap2DTileCoords): TileSprite | undefined;
    updateTile(tile: TileSprite, tileCoords: IMap2DTileCoords): void;
    private createTileSprite;
    destroyTile(tile: TileSprite): void;
    update(): void;
}
//# sourceMappingURL=TileSpritesFactory.d.ts.map