import type EsriPointCloudRenderer from "@arcgis/core/renderers/PointCloudRenderer";
import type { PointCloudClassBreaksRenderer } from "./PointCloudClassBreaksRenderer.js";
import type { PointCloudFixedSizeAlgorithm } from "./PointCloudFixedSizeAlgorithm.js";
import type { PointCloudRGBRenderer } from "./PointCloudRGBRenderer.js";
import type { PointCloudSplatAlgorithm } from "./PointCloudSplatAlgorithm.js";
import type { PointCloudStretchRenderer } from "./PointCloudStretchRenderer.js";
import type { PointCloudUniqueValueRenderer } from "./PointCloudUniqueValueRenderer.js";
import type { Renderer, RendererBase } from "./Renderer.js";
/**
 * Defines how features are rendered on the map.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type PointCloudRenderer = PointCloudClassBreaksRenderer | PointCloudRGBRenderer | PointCloudStretchRenderer | PointCloudUniqueValueRenderer;
export declare namespace PointCloudRenderer {
    /**
     * Converts an ArcGIS Portal JSON representation of a point cloud renderer
     * to its Esri JavaScript API equivalent.
     *
     * @deprecated Use "json/*" modules instead.
     * @param json The renderer JSON to convert.
     */
    function toEsriApiPointCloudRenderer(json: Renderer): Promise<EsriPointCloudRenderer | undefined>;
}
/**
 * The renderer assigned to the layer. The renderer defines how to visualize
 * each point in the layer.
 *
 * See
 * {@link https://developers.arcgis.com/web-scene-specification/objects/pointCloudRenderer/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface PointCloudRendererBase extends RendererBase {
    /**
     * Indicates whether modulation should be used to render the point.
     *
     * See
     * {@link https://developers.arcgis.com/web-scene-specification/objects/colorModulationInfo/}.
     */
    colorModulation?: {
        /**
         * The attribute to use as a source for the modulation amplitude.
         */
        field?: string;
        /**
         * Maximum value to compute modulation linear mapping.
         */
        maxValue?: number;
        /**
         * Minimum value to compute modulation linear mapping.
         */
        minValue?: number;
    };
    /**
     * The name of the field that is used for the renderer.
     */
    field?: string;
    /**
     * A transform that is applied to the field value before evaluating the
     * renderer.
     */
    fieldTransformType?: "none" | "lowFourBit" | "highFourBit" | "absoluteValue" | "moduloTen";
    /**
     * Size algorithms for point cloud performance.
     */
    pointSizeAlgorithm?: PointCloudSplatAlgorithm | PointCloudFixedSizeAlgorithm;
    /**
     * Number of point to draw per display inch.
     */
    pointsPerInch?: number;
}
