export default LocalTileDataFetcher;
export type LocalTile = {
    tilePositionId?: string;
};
export type LocalTileDataConfig = {
    tiles: Record<string, LocalTile>;
    tilesetInfo: Record<string, TilesetInfo>;
};
/** @import { AbstractDataFetcher, TilesetInfo } from '../types' */
/** @typedef {{tilePositionId?: string}} LocalTile */
/**
 * @typedef LocalTileDataConfig
 * @property {Record<string, LocalTile>} tiles
 * @property {Record<string, TilesetInfo>} tilesetInfo
 */
/** @implements {AbstractDataFetcher<LocalTile, LocalTileDataConfig>} */
declare class LocalTileDataFetcher implements AbstractDataFetcher {
    /** @param {LocalTileDataConfig} dataConfig */
    constructor(dataConfig: LocalTileDataConfig);
    /** @type {LocalTileDataConfig} */
    dataConfig: LocalTileDataConfig;
    /** @type {TilesetInfo} */
    tilesetInfoData: TilesetInfo;
    /** @type {Record<string, LocalTile>} */
    tilesData: Record<string, LocalTile>;
    /** @type {boolean} */
    tilesetInfoLoading: boolean;
    /** @param {import('../types').HandleTilesetInfoFinished} callback */
    tilesetInfo(callback: import("../types").HandleTilesetInfoFinished): Promise<TilesetInfo>;
    /** We expect there to be a tilesetUid in the provided tilesetInfo
     * and tiles data since tileResponseToData needs it
     *
     * It is also easier for users to paste in request responses for debugging.
     *
     * @param {(tiles: Record<string, LocalTile>) => void} receivedTiles
     * @param {string[]} tileIds
     */
    fetchTilesDebounced(receivedTiles: (tiles: Record<string, LocalTile>) => void, tileIds: string[]): Promise<Record<string, LocalTile>>;
    /**
     * @param {number} z
     * @param {number} x
     * @returns {void}
     */
    tile(z: number, x: number): void;
}
import type { TilesetInfo } from '../types';
import type { AbstractDataFetcher } from '../types';
