import type EsriSymbol from "@arcgis/core/symbols/Symbol";
import type { SymbolUnion } from "@arcgis/core/unionTypes.js";
import type { SymbolType as EsriApiSymbolType } from "../support/esri.js";
import type { CIMSymbol } from "./CIMSymbol.js";
import type { PictureFillSymbol } from "./PictureFillSymbol.js";
import type { PictureMarkerSymbol } from "./PictureMarkerSymbol.js";
import type { SimpleFillSymbol } from "./SimpleFillSymbol.js";
import type { SimpleLineSymbol } from "./SimpleLineSymbol.js";
import type { SimpleMarkerSymbol } from "./SimpleMarkerSymbol.js";
import type { Symbol3D } from "./Symbol3D.js";
import type { TextSymbol } from "./TextSymbol.js";
/**
 * A symbol representing a feature on the map.
 *
 * Part of the Esri ArcGIS REST API (see
 * http://resources.arcgis.com/en/help/rest/apiref/symbol.html). See
 * {@link https://developers.arcgis.com/web-map-specification/objects/symbol/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type Symbol = SimpleMarkerSymbol | SimpleLineSymbol | SimpleFillSymbol | PictureMarkerSymbol | PictureFillSymbol | TextSymbol | CIMSymbol;
/**
 * Base class for 2D symbols.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface SymbolBase {
    /**
     * The type of symbol. See {@link portal/Symbol!SymbolType}.
     */
    type: SymbolType;
}
/**
 * Converts a Portal JSON symbol object to its equivalent Esri JavaScript API
 * object.
 *
 * @deprecated Use "json/*" modules instead.
 * @param symbolJson The symbol json to convert.
 */
export declare function toEsriApiSymbol(symbolJson: Symbol | Symbol3D): SymbolUnion | undefined;
/**
 * Converts an Esri JavaScript API symbol object to its Portal JSON
 * representation.
 *
 * @deprecated Use "json/*" modules instead.
 * @param symbol The symbol to convert.
 */
export declare function fromEsriApiSymbol(symbol: EsriSymbol): Symbol | Symbol3D;
/**
 * Font used for text symbols.
 *
 * See {@link https://developers.arcgis.com/web-map-specification/objects/font/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/font/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface Font {
    /**
     * The text decoration. See {@link TextDecoration}.
     */
    decoration?: TextDecoration;
    /**
     * The font family.
     */
    family?: string;
    /**
     * The font size.
     */
    size?: number;
    /**
     * The text style. See {@link FontStyle}.
     */
    style?: FontStyle;
    /**
     * The text weight. See {@link FontWeight}.
     */
    weight?: FontWeight;
}
/**
 * Color is represented as a four-element array. The four elements represent
 * values for red, green, blue, and alpha in that order. Values range from 0
 * through 255. If color is undefined for a symbol, the color value is null. See
 * {@link https://developers.arcgis.com/web-map-specification/objects/color/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/color/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type Color = [number, number, number, number] | [number, number, number];
/**
 * The type of the Symbol.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type SymbolType = "esriSMS" | "esriSLS" | "esriSFS" | "esriPMS" | "esriPFS" | "esriTS" | "LineSymbol3D" | "MeshSymbol3D" | "PointSymbol3D" | "PolygonSymbol3D" | "LabelSymbol3D" | "styleSymbolReference" | "CIMSymbolReference";
export declare namespace SymbolType {
    /**
     * Converts from symbol type constants used in the esri JavaScript API to
     * their web map equivalents.
     *
     * @deprecated Use "json/*" modules instead.
     * @param type The ArcGIS JavaScript API symbol type.
     */
    function fromEsriApiSymbolType(type: string): SymbolType;
    /**
     * Converts from ArcGIS REST/web map symbol type constants to their Esri
     * JavaScript API equivalents.
     *
     * @deprecated Use "json/*" modules instead.
     * @param type The Portal JSON symbol type.
     */
    function toEsriApiSymbolType(type: string): EsriApiSymbolType;
}
/**
 * The vertical alignment of a TextSymbol.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type VerticalAlignment = "baseline" | "top" | "middle" | "bottom";
/**
 * The horizontal alignment of a TextSymbol.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type HorizontalAlignment = "left" | "right" | "center" | "justify";
/**
 * The style of the Font.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type FontStyle = "italic" | "normal" | "oblique";
/**
 * The weight of the Font.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type FontWeight = "bold" | "bolder" | "lighter" | "normal";
/**
 * The text decoration for the Font.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type TextDecoration = "line-through" | "underline" | "none";
