import { type Topology } from 'topojson-specification';
/**
 * Zoom → minWeight policy. The default thresholds were chosen empirically
 * against the 10m world-atlas dataset: each tier targets a percentile of
 * removable points so that the per-frame d3-geo path cost stays roughly
 * constant as the user zooms in.
 */
export type SimplifyTier = {
    /** Lower bound (inclusive) of the zoom range this tier applies to. */
    minZoom: number;
    /** Percentile in [0, 1] passed to `topojson.quantile`. 1 = keep no points; 0 = keep all. */
    percentile: number;
};
export type UseSimplifiedTopologyOptions = {
    /**
     * Zoom buckets that map a zoom value to a simplification percentile. The
     * hook picks the highest-`minZoom` tier whose bound is ≤ the current zoom,
     * so tiers may be listed in any order but ascending is conventional.
     */
    tiers?: SimplifyTier[];
};
/**
 * Returns a simplified copy of `topology` whose detail tracks the current
 * `zoom`. The source topology is annotated with point weights once via
 * `presimplify`; subsequent zoom changes reuse that work and only re-run
 * the cheap `simplify` pass against a tier-bucketed `minWeight`.
 *
 * Pass the highest-resolution source you have (typically `10m`) and let the
 * hook decimate at low zoom — that's the cheap end of the curve.
 */
export declare const useSimplifiedTopology: (topology: Topology | undefined, zoom: number, options?: UseSimplifiedTopologyOptions) => Topology | undefined;
//# sourceMappingURL=useSimplifiedTopology.d.ts.map