import type Color from "@arcgis/core/Color";
import type { SymbolUnion } from "@arcgis/core/unionTypes.js";
import type { ColorJson, SymbolJson, TextSymbolJson } from "@vertigis/arcgis-extensions/json/SymbolJson.js";
import type { ServiceModelProperties } from "./ServiceModelProperties.js";
/**
 * Specifies which map mode(s) to display highlights.
 */
export declare enum DisplayMode {
    MAP = "map",
    SCENE = "scene",
    BOTH = "both"
}
/**
 * Configuration for the highlight service.
 */
export interface HighlightModelProperties extends ServiceModelProperties {
    /**
     * The color used for rendering highlight graphics on a map. A different
     * border color for highlight graphics will be derived from this color
     * value. If this property is undefined, no highlight graphics will get
     * rendered.
     */
    highlightColor?: Color | ColorJson;
    /**
     * The symbol properties used for rendering a highlight marker on the map.
     * If this property is undefined, no markers will be rendered for in-scale
     * highlighting.
     */
    highlightMarkerSymbol?: SymbolUnion | SymbolJson;
    /**
     * The symbol properties used for rendering highlight text on the map.
     */
    highlightLabelTextSymbol?: TextSymbolJson;
    /**
     * The color used for rendering focus graphics on a map. A different border
     * color for focus graphics will be derived from this color value. If this
     * property is undefined, no focus graphics will get rendered.
     */
    focusColor?: Color | ColorJson;
    /**
     * The symbol properties used for rendering a focus marker on the map. If
     * this property is undefined, no markers will be rendered for in-scale
     * focusing.
     */
    focusMarkerSymbol?: SymbolUnion | SymbolJson;
    /**
     * The symbol properties used for rendering focus text on the map.
     */
    focusLabelTextSymbol?: TextSymbolJson;
    /**
     * The maximum allowed deviation from the generalized geometry to the
     * original geometry.
     */
    maxDeviationInMeters?: number;
    /**
     * The maximum number of vertices a polyline or polygon geometry can have
     * before it gets generalized.
     */
    maxVertices?: number;
    /**
     * The map view modes in which to display the highlight markers.
     */
    highlightMarkerDisplay?: DisplayMode;
    /**
     * The map view modes in which to display the focus markers.
     */
    focusMarkerDisplay?: DisplayMode;
}
