import { Texture } from "three";
export interface TileConfig {
    extent: [number, number, number, number];
    maxZoom: number;
    minZoom: number;
}
export declare class TileLoader {
    private baseUrl;
    private config;
    private textureCache;
    private textureLoader;
    constructor(baseUrl?: string);
    /**
     * 设置基础URL
     * @param url TMS服务基础URL
     */
    setBaseUrl(url: string): void;
    /**
     * 设置瓦片配置
     * @param config 瓦片配置
     */
    setConfig(config: TileConfig): void;
    /**
     * 异步加载瓦片配置
     */
    loadConfig(): Promise<TileConfig>;
    /**
     * 构建TMS瓦片URL
     * @param tileX 瓦片X坐标
     * @param tileY 瓦片Y坐标
     * @param zoom 缩放级别
     * @returns 完整的瓦片URL
     */
    buildTileUrl(tileX: number, tileY: number, zoom: number): string;
    /**
     * 根据Web墨卡托坐标加载瓦片纹理
     * @param x Web墨卡托X坐标
     * @param y Web墨卡托Y坐标
     * @param zoom 缩放级别
     * @returns Promise<Texture> 纹理对象
     */
    loadTileTexture(x: number, y: number, zoom: number): Promise<Texture | null>;
    /**
     * 清除纹理缓存
     */
    clearCache(): void;
    /**
     * 销毁加载器，清理资源
     */
    dispose(): void;
}
