import type { LatLngLike } from "../geo.js"; import { MarkerCollection, type MarkerCollectionOptions } from "../layers/marker-collection.js"; import { ObjectManager, type ObjectManagerOptions } from "./object-manager.js"; import { RemoteObjectManager, type RemoteObjectManagerOptions } from "./remote-object-manager.js"; export type PointObjectManagerOptions = MarkerCollectionOptions & { points: Iterable; loader?: never; source?: never; debounceMs?: never; replace?: never; clusterize?: never; clusterRenderer?: never; style?: never; }; export type LocalObjectManagerOptions = ObjectManagerOptions & { loader?: never; points?: never; debounceMs?: never; replace?: never; }; export type UnifiedObjectManagerOptions = LocalObjectManagerOptions | RemoteObjectManagerOptions | PointObjectManagerOptions; /** Remote object manager driven by a `loader`. Prefer this over `objectManager({ loader })`. */ export declare function remoteObjectManager(options: RemoteObjectManagerOptions): RemoteObjectManager; /** Lightweight point collection. Prefer this over `objectManager({ points })`. */ export declare function markerCollection(points: Iterable, options?: MarkerCollectionOptions): MarkerCollection; /** * Option-shape facade over three different classes: `loader` → `RemoteObjectManager`, * `points` → `MarkerCollection`, neither → `ObjectManager`. A factory whose runtime type depends * on which key is present is hard to predict, especially for options assembled dynamically, so * prefer `remoteObjectManager()` / `markerCollection()` by name and keep `objectManager()` for * the plain local manager. Mixed configurations are rejected rather than resolved by precedence. */ export declare function objectManager(options: RemoteObjectManagerOptions): RemoteObjectManager; export declare function objectManager(options: PointObjectManagerOptions): MarkerCollection; export declare function objectManager(options?: LocalObjectManagerOptions): ObjectManager; export declare function objectManager(options: UnifiedObjectManagerOptions): ObjectManager | RemoteObjectManager | MarkerCollection; //# sourceMappingURL=object-manager-factory.d.ts.map