import { InteractiveLayer } from "../interactive-layer.js"; import { type LayerOptions } from "../layer.js"; import { type LatLngLike, type Point } from "../geo.js"; import type { Orihon } from "../map.js"; import type { PointLike } from "../geo.js"; import type { QueryHit, ResolvedQueryOptions } from "../layer.js"; export type ClusterCanvasItem = { key: string; lat: number; lng: number; count: number; }; export type ClusterCanvasLayerOptions = LayerOptions & { pane?: string; hitTolerance?: number; }; /** * Single-canvas cluster badges (OpenLayers-style): one redraw per frame, no DOM Markers. */ export interface ClusterCanvasEventMap { clusterclick: { originalEvent: MouseEvent; clusterKey: string; latlng: LatLngLike; count: number; }; } export declare class ClusterCanvasLayer extends InteractiveLayer { private canvas; private ctx; private items; private drawn; private dpr; constructor(options?: ClusterCanvasLayerOptions); onAdd(map: Orihon): void; onRemove(): void; setClusters(items: ClusterCanvasItem[]): this; clear(): this; queryAt(containerPoint: PointLike, tolerance?: number): ClusterCanvasItem | null; queryHit(point: Point, options: ResolvedQueryOptions): QueryHit | null; render(): void; private _onClick; private _resize; private _draw; } export declare function clusterCanvasLayer(options?: ClusterCanvasLayerOptions): ClusterCanvasLayer; //# sourceMappingURL=cluster-canvas-layer.d.ts.map