import type { GeoJSONFeature } from "./layers/geojson.js"; export type FeatureId = string | number; export type FeatureSourceChangeKind = "add" | "update" | "remove" | "clear"; export interface FeatureSourceChange { kind: FeatureSourceChangeKind; ids: readonly FeatureId[]; features: readonly GeoJSONFeature[]; version: number; } export type FeatureSourceListener = (change: FeatureSourceChange) => void; /** Minimal structural contract consumed by Orihon data-driven layers. */ export interface FeatureSourceLike { readonly size: number; readonly version: number; getFeatures(): readonly GeoJSONFeature[]; subscribe(listener: FeatureSourceListener): () => void; } export declare function isFeatureSourceLike(value: unknown): value is FeatureSourceLike; //# sourceMappingURL=feature-source-types.d.ts.map