import { Store, UIEventSource } from "../UIEventSource" import FilteredLayer from "../../Models/FilteredLayer" import { Feature } from "geojson" export interface FeatureSource { features: Store } export interface UpdatableFeatureSource extends FeatureSource { /** * Forces an update and downloads the data, even if the feature source is supposed to be active */ updateAsync() } export interface WritableFeatureSource extends FeatureSource { features: UIEventSource } /** * A feature source which only contains features for the defined layer */ export interface FeatureSourceForLayer extends FeatureSource { readonly layer: FilteredLayer } export interface FeatureSourceForTile extends FeatureSource { readonly x: number readonly y: number readonly z: number } /** * A feature source which is aware of the indexes it contains */ export interface IndexedFeatureSource extends FeatureSource { readonly featuresById: Store> }