import { type Topology } from 'topojson-specification';
import { type CountriesResolution } from '../data';
export type Level = CountriesResolution;
export type LevelTier = {
    /** Lower bound (inclusive) of the zoom range. */
    minZoom: number;
    /** Topology resolution to load when this tier is active. */
    level: CountriesResolution;
};
export type UseTopologyOptions = {
    /** Zoom buckets that map a zoom value to a resolution. Default: 110m / 50m at 0 / 3. */
    tiers?: LevelTier[];
};
/**
 * Loads TopoJSON country data.
 *
 * - With no arguments, loads the default `110m` resolution.
 * - With a `zoom`, loads the resolution matching the current zoom tier (progressive level-of-detail).
 *   Each resolution is a separate dynamic `import()`, so unused detail levels are never fetched, and
 *   while a heavier tier loads the previously-displayed topology stays on screen (no blank canvas).
 */
export declare const useTopology: {
    (): Topology | undefined;
    (zoom: number, options?: UseTopologyOptions): Topology | undefined;
};
//# sourceMappingURL=useTopology.d.ts.map