/**
 * Provides utility functions for converting simple symbols and picture symbols to [CIMSymbols](https://developers.arcgis.com/javascript/latest/references/core/symbols/CIMSymbol/).
 *
 * @since 4.29
 * @see [CIMSymbol](https://developers.arcgis.com/javascript/latest/references/core/symbols/CIMSymbol/)
 * @see [cimSymbolUtils](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/cimSymbolUtils/)
 * @see [symbolService](https://developers.arcgis.com/javascript/latest/references/core/rest/symbolService/)
 */
import type CIMSymbol from "../CIMSymbol.js";
import type { Symbol2DUnion } from "../types.js";

/**
 * Converts a given symbol to a CIMSymbol.
 *
 * @param symbol - The symbol to convert to a CIMSymbol.
 * @returns Returns a CIMSymbol representation of the given symbol.
 * @since 4.29
 * @example
 * const simpleLine = new SimpleLineSymbol({
 *    width: 1,
 *    color: "black",
 *    style: "dash",
 *    cap: "round",
 * });
 * const cimLine = cimConversionUtils.convertToCIMSymbol(simpleLine);
 * graphic.symbol = cimLine;
 */
export function convertToCIMSymbol(symbol: Symbol2DUnion): CIMSymbol;