import { Value } from "@here/harp-datasource-protocol/index-decoder" ; /**
 * Feature Modifier ids to choose which OmvFeatureModifer should be used in OmvDecoder.
 */ export enum FeatureModifierId { note default } /**
 * Definition of a filter.
 */ export interface OmvFilterString { /**  String value */ value : string ; /** Match condition */ match : OmvFilterString . StringMatch ; } /**
 * Adding the match condition type and the matching function to the namespace of `OmvFilterString`.
 */ export namespace OmvFilterString { /**
     * Match condition.
     */ export enum StringMatch { /** Matches any. */ Any , /** Exact match. */ Match , /** Matches if a test string starts with a filter string. */ StartsWith , /** Matches if a test string contains a filter string. */ Contains , /** Matches if a test string ends with a filter string. */ EndsWith } param str param filterString returns internal export function matchString ( str , filterString ) { switch ( filterString . match ) { case OmvFilterString . StringMatch . Any : return true ; case OmvFilterString . StringMatch . Match : return str === filterString . value ; case OmvFilterString . StringMatch . StartsWith : return filterString . value . startsWith ( str ) ; case OmvFilterString . StringMatch . EndsWith : return filterString . value . endsWith ( str ) ; default : return str . includes ( filterString . value ) ; } } } /**
 * Definition of a filter for a feature attribute
 */ export interface OmvFilterFeatureAttribute { key : string ; value : Value ; } export enum OmvGeometryType { UNKNOWN = 0 , POINT = 1 , LINESTRING = 2 , POLYGON = 3 } hidden export interface OmvLayerFilterDescription { name : OmvFilterString ; minLevel : number ; maxLevel : number ; } hidden export interface OmvFilterDescription { layerName : OmvFilterString ; geometryTypes ? : OmvGeometryType [ ] ; classes ? : OmvFilterString [ ] ; minLevel : number ; maxLevel : number ; featureAttribute ? : OmvFilterFeatureAttribute ; } hidden export interface OmvFeatureFilterDescription { processLayersDefault : boolean ; processPointsDefault : boolean ; processLinesDefault : boolean ; processPolygonsDefault : boolean ; layersToProcess : OmvLayerFilterDescription [ ] ; layersToIgnore : OmvLayerFilterDescription [ ] ; pointsToProcess : OmvFilterDescription [ ] ; pointsToIgnore : OmvFilterDescription [ ] ; linesToProcess : OmvFilterDescription [ ] ; linesToIgnore : OmvFilterDescription [ ] ; polygonsToProcess : OmvFilterDescription [ ] ; polygonsToIgnore : OmvFilterDescription [ ] ; kindsToProcess : string [ ] ; kindsToIgnore : string [ ] ; } internal export interface OmvDecoderOptions { /**
     * If true, features that have no technique in the theme will be printed to the console (can be
     * excessive!).
     */ showMissingTechniques ? : boolean ; /**
     * Gather feature attributes from [[OmvData]]. Defaults to false.
     */ gatherFeatureAttributes ? : boolean ; deprecated createTileInfo ? : boolean ; deprecated gatherRoadSegments ? : boolean ; /**
     * Optional storage level offset for [[Tile]]s. Default is -2.
     */ storageLevelOffset ? : number ; /**
     * If not set to `false` very short text labels will be skipped during decoding based on a
     * heuristic.
     */ skipShortLabels ? : boolean ; /**
     * A description for the feature filter which can be safely passed down to the web workers.
     * It has to be generated with the help of the [[OmvFeatureFilterDescriptionBuilder]] (to
     * guarantee the correctness).
     */ filterDescription ? : OmvFeatureFilterDescription | null ; /**
     * List of user specified [[OmvFeatureModifier]]s, list order declares the order of processing.
     *
     * Each identifier is used to choose corresponding OmvFeatureModifier, if undefined at least
     * [[OmvGenericFeatureModifier]] is added to decoder.
     */ featureModifiers ? : FeatureModifierId [ ] ; /**
     * Country code (lower-case ISO 3166-1 alpha-2) defining optional point of view to be used.
     * Set to empty string ("") if you want to use default (widely accepted) point of view.
     * If set to `undefined` leaves current political view decoder configuration.
     */ politicalView ? : string ; enableElevationOverlay ? : boolean ; roundUpCoordinatesIfNeeded ? : boolean ; } remarks internal export const VECTOR_TILE_DECODER_SERVICE_TYPE = "vector-tile-decoder" ; remarks internal export const GEOJSON_TILER_SERVICE_TYPE = "geojson-tiler" ;