/**
 * A convenience module for importing [PointCloudRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-PointCloudRenderer.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 PointCloudClassBreaksRenderer from "@arcgis/core/renderers/PointCloudClassBreaksRenderer.js";
 * import PointCloudRGBRenderer from "@arcgis/core/renderers/PointCloudRGBRenderer.js";
 * import PointCloudStretchRenderer from "@arcgis/core/renderers/PointCloudStretchRenderer.js";
 * import PointCloudUniqueValueRenderer from "@arcgis/core/renderers/PointCloudUniqueValueRenderer.js";
 * ```
 *
 * You can use this module to import them on a single line:
 *
 * ```js
 * import {
 *   PointCloudClassBreaksRenderer,
 *   PointCloudRGBRenderer,
 *   PointCloudStretchRenderer,
 *   PointCloudUniqueValueRenderer
 * } from "@arcgis/core/pointCloudRenderers.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 { PointCloudRenderer } from "@arcgis/core/pointCloudRenderers.js";
 *
 * function logInfos(renderer: PointCloudRenderer): void {
 *   if (renderer.type === "point-cloud-class-breaks") {
 *     // new at 4.8, the compiler knows the renderer is a PointCloudClassBreaksRenderer
 *     console.log("renderer colorClassBreakInfos: ", renderer.colorClassBreakInfos);
 *   }
 * }
 * ```
 *
 * @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 [PointCloudClassBreaksRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-PointCloudClassBreaksRenderer.html)
 * @see [PointCloudRGBRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-PointCloudRGBRenderer.html)
 * @see [PointCloudStretchRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-PointCloudStretchRenderer.html)
 * @see [PointCloudUniqueValueRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-PointCloudUniqueValueRenderer.html)
 */
import type PointCloudClassBreaksRendererClass from "./renderers/PointCloudClassBreaksRenderer.js";
import type PointCloudRGBRendererClass from "./renderers/PointCloudRGBRenderer.js";
import type PointCloudStretchRendererClass from "./renderers/PointCloudStretchRenderer.js";
import type PointCloudUniqueValueRendererClass from "./renderers/PointCloudUniqueValueRenderer.js";
import type { PointCloudRendererUnion } from "./renderers/support/pointCloud/types.js";

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

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

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

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

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

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

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

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

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