/**
 * A convenience module for importing [Renderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-Renderer.html) classes when developing with
 * [TypeScript](https://developers.arcgis.com/javascript/latest/get-started/#typescript).
 * For example, rather than importing renderers one at a time like this:
 *
 * ```js
 * import ClassBreaksRenderer from "@arcgis/core/renderers/ClassBreaksRenderer.js";
 * import HeatmapRenderer from "@arcgis/core/renderers/HeatmapRenderer.js";
 * import SimpleRenderer from "@arcgis/core/renderers/SimpleRenderer.js";
 * import UniqueValueRenderer from "@arcgis/core/renderers/UniqueValueRenderer.js";
 * import DictionaryRenderer from "@arcgis/core/renderers/DictionaryRenderer.js";
 * ```
 *
 * You can use this module to import them on a single line:
 *
 * ```js
 * import { ClassBreaksRenderer, HeatmapRenderer, SimpleRenderer, UniqueValueRenderer } from "@arcgis/core/renderers.js";
 * ```
 *
 * This module also allows you to implement [type guards](https://basarat.gitbook.io/typescript/type-system/typeguard)
 * on renderers, making your code smarter.
 *
 * ```js
 * import { Renderer } from "@arcgis/core/renderers.js";
 *
 * function logRenderer(renderer: Renderer): void {
 *   if (renderer.type === "simple") {
 *     // new at 4.8, the compiler knows the renderer is a SimpleRenderer
 *     console.log("renderer symbol: ", renderer.symbol);
 *   }
 *   else {
 *     if (renderer.type !== "heatmap") {
 *       // the compiler knows the renderer must be a `ClassBreaksRenderer | UniqueValueRenderer`
 *       console.log("renderer background symbol: ", renderer.backgroundFillSymbol);
 *     }
 *   }
 * }
 * ```
 *
 * @deprecated since version 4.32. Use [unionTypes](https://developers.arcgis.com/javascript/latest/api-reference/esri-unionTypes.html) to import union types, or individual modules to import classes.
 * @since 4.8
 * @see [ClassBreaksRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-ClassBreaksRenderer.html)
 * @see [HeatmapRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-HeatmapRenderer.html)
 * @see [SimpleRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-SimpleRenderer.html)
 * @see [UniqueValueRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-UniqueValueRenderer.html)
 */
import type ClassBreaksRendererClass from "./renderers/ClassBreaksRenderer.js";
import type DictionaryRendererClass from "./renderers/DictionaryRenderer.js";
import type DotDensityRendererClass from "./renderers/DotDensityRenderer.js";
import type HeatmapRendererClass from "./renderers/HeatmapRenderer.js";
import type PieChartRendererClass from "./renderers/PieChartRenderer.js";
import type SimpleRendererClass from "./renderers/SimpleRenderer.js";
import type UniqueValueRendererClass from "./renderers/UniqueValueRenderer.js";
import type { RendererUnion, RendererWithVisualVariablesUnion } from "./renderers/types.js";

/**
 * DictionaryRenderer.
 *
 * @deprecated since version 4.32. Import [DictionaryRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-DictionaryRenderer.html) directly instead.
 */
export const DictionaryRenderer: typeof DictionaryRendererClass;

/**
 * DictionaryRenderer.
 *
 * @deprecated since version 4.32. Import [DictionaryRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-DictionaryRenderer.html) directly instead.
 */
export type DictionaryRenderer = DictionaryRendererClass;

/**
 * SimpleRenderer.
 *
 * @deprecated since version 4.32. Import [SimpleRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-SimpleRenderer.html) directly instead.
 */
export const SimpleRenderer: typeof SimpleRendererClass;

/**
 * SimpleRenderer.
 *
 * @deprecated since version 4.32. Import [SimpleRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-SimpleRenderer.html) directly instead.
 */
export type SimpleRenderer = SimpleRendererClass;

/**
 * ClassBreaksRenderer.
 *
 * @deprecated since version 4.32. Import [ClassBreaksRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-ClassBreaksRenderer.html) directly instead.
 */
export const ClassBreaksRenderer: typeof ClassBreaksRendererClass;

/**
 * ClassBreaksRenderer.
 *
 * @deprecated since version 4.32. Import [ClassBreaksRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-ClassBreaksRenderer.html) directly instead.
 */
export type ClassBreaksRenderer = ClassBreaksRendererClass;

/**
 * UniqueValueRenderer.
 *
 * @deprecated since version 4.32. Import [UniqueValueRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-UniqueValueRenderer.html) directly instead.
 */
export const UniqueValueRenderer: typeof UniqueValueRendererClass;

/**
 * UniqueValueRenderer.
 *
 * @deprecated since version 4.32. Import [UniqueValueRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-UniqueValueRenderer.html) directly instead.
 */
export type UniqueValueRenderer = UniqueValueRendererClass;

/**
 * DotDensityRenderer.
 *
 * @deprecated since version 4.32. Import [DotDensityRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-DotDensityRenderer.html) directly instead.
 */
export const DotDensityRenderer: typeof DotDensityRendererClass;

/**
 * DotDensityRenderer.
 *
 * @deprecated since version 4.32. Import [DotDensityRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-DotDensityRenderer.html) directly instead.
 */
export type DotDensityRenderer = DotDensityRendererClass;

/**
 * PieChartRenderer.
 *
 * @deprecated since version 4.32. Import [PieChartRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-PieChartRenderer.html) directly instead.
 */
export const PieChartRenderer: typeof PieChartRendererClass;

/**
 * PieChartRenderer.
 *
 * @deprecated since version 4.32. Import [PieChartRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-PieChartRenderer.html) directly instead.
 */
export type PieChartRenderer = PieChartRendererClass;

/**
 * RendererWithVisualVariables.
 *
 * @deprecated since version 4.32. Use [RendererWithVisualVariablesUnion](https://developers.arcgis.com/javascript/latest/api-reference/esri-unionTypes.html#RendererWithVisualVariablesUnion) instead.
 */
export type RendererWithVisualVariables = RendererWithVisualVariablesUnion;

/**
 * HeatmapRenderer.
 *
 * @deprecated since version 4.32. Import [HeatmapRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-HeatmapRenderer.html) directly instead.
 */
export const HeatmapRenderer: typeof HeatmapRendererClass;

/**
 * HeatmapRenderer.
 *
 * @deprecated since version 4.32. Import [HeatmapRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-HeatmapRenderer.html) directly instead.
 */
export type HeatmapRenderer = HeatmapRendererClass;

/**
 * Renderer.
 *
 * @deprecated since version 4.32. Use [RendererUnion](https://developers.arcgis.com/javascript/latest/api-reference/esri-unionTypes.html#RendererUnion) instead.
 */
export type Renderer = RendererUnion;