import { Store, UIEventSource } from "../UIEventSource" import FilteredLayer from "../../Models/FilteredLayer" import { BBox } from "../BBox" import { Feature, Geometry } from "@turf/turf" import { OsmFeature } from "../../Models/OsmFeature" export default interface FeatureSource { features: Store<{ feature: OsmFeature; freshness: Date }[]> /** * Mainly used for debuging */ name: string } export interface Tiled { tileIndex: number bbox: BBox } /** * A feature source which only contains features for the defined layer */ export interface FeatureSourceForLayer extends FeatureSource { readonly layer: FilteredLayer } /** * A feature source which is aware of the indexes it contains */ export interface IndexedFeatureSource extends FeatureSource { readonly containedIds: Store> }