import { GeoJsonMultiPolygon, GeoJsonPolygon } from "@trackunit/geo-json-utils"; export type ValueName = { value: string; name: string; }; export type BooleanValue = { booleanValue?: boolean; }; export type MinMaxFilterValue = { min?: number; max?: number; }; export type DateRangeFilterValue = { from?: string; to?: string; }; export type AreaFilterGeoJsonGeometryType = GeoJsonPolygon | GeoJsonMultiPolygon; export type FilterValueType = Array | Array | ValueName | AreaFilterGeoJsonGeometryType | MinMaxFilterValue | DateRangeFilterValue | string | number | BooleanValue | undefined; export type FilterBarValues = Record; export interface FilterBarContext { /** * The filter bar values for assets, keyed by filter key. */ assetsFilterBarValues: FilterBarValues | null; /** * The filter bar values for customers, keyed by filter key. */ customersFilterBarValues: FilterBarValues | null; /** * The filter bar values for sites, keyed by filter key. */ sitesFilterBarValues: FilterBarValues | null; /** * Whether the filter bar values are loading, true if any of the filter bar values are not loaded yet. */ isLoading: boolean; } export interface FilterBarRuntimeApi { /** * @deprecated Use getAssetsFilterBarValues instead. */ getFilterBarValues: () => Promise; getAssetsFilterBarValues: () => Promise; getCustomersFilterBarValues: () => Promise; getSitesFilterBarValues: () => Promise; }