import type EsriRenderer from "@arcgis/core/renderers/Renderer";
import type { ClassBreaksRenderer } from "./ClassBreaksRenderer.js";
import type { Field } from "./Field.js";
import type { HeatmapRenderer } from "./HeatmapRenderer.js";
import type { PointCloudRenderer } from "./PointCloudRenderer.js";
import type { PredominanceRenderer } from "./PredominanceRenderer.js";
import type { SimpleRenderer } from "./SimpleRenderer.js";
import type { TemporalRenderer } from "./TemporalRenderer.js";
import type { UniqueValueFromStyle } from "./UniqueValueFromStyle.js";
import type { UniqueValueRenderer } from "./UniqueValueRenderer.js";
import type { VectorFieldRenderer } from "./VectorFieldRenderer.js";
import type { VisualVariable } from "./VisualVariable.js";
export declare namespace Renderer {
    /**
     * Converts an ArcGIS Portal JSON representation of a renderer to its Esri
     * JavaScript API equivalent.
     *
     * @deprecated Use "json/*" modules instead.
     * @param rendererJson The renderer JSON to convert.
     */
    function toEsriApiRenderer(rendererJson: Renderer): EsriRenderer | undefined;
    /**
     * Converts an Esri JavaScript API Renderer object to its ArcGIS Portal JSON
     * representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param renderer The Renderer object to convert.
     */
    function fromEsriApiRenderer(renderer: EsriRenderer): Renderer;
}
/**
 * Defines how features are rendered on the map.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/renderer/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/renderer/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface RendererBase {
    /**
     * An object containing metadata about the authoring process for creating a
     * renderer object. This allows the authoring clients to save specific
     * overridable settings so that next time it is accessed via the UI, their
     * selections are remembered. Non-authoring clients should ignore it.
     */
    authoringInfo?: AuthoringInfo;
    /**
     * The type of renderer. See {@link portal/Renderer!RendererType}.
     */
    type: RendererType;
    /**
     * A constant value or an expression that derives the angle of rotation
     * based on a feature attribute value. When an attribute name is specified,
     * it's enclosed in square brackets.
     */
    rotationExpression?: string;
    /**
     * String value (either geographic or arithmetic) which controls the origin
     * and direction of rotation on point features. If the rotationType is
     * defined as 'arithmetic', the symbol is rotated from East in a
     * counter-clockwise direction where East is the 0� axis. If the
     * rotationType is defined as 'geographic', the symbol is rotated from North
     * in a clockwise direction where North is the 0� axis. See
     * {@link portal/Renderer!RotationType}.
     */
    rotationType?: RotationType;
    /**
     * An array of visualVariable objects used for continuous color or size,
     * simple, and unique values with feature opacity.
     */
    visualVariables?: VisualVariable[];
}
/**
 * A renderer that uses one symbol only.
 *
 * Part of the Esri ArcGIS REST API (see
 * http://resources.arcgis.com/en/help/rest/apiref/renderer.html).
 *
 * @deprecated Use "json/*" modules instead.
 */
export type Renderer = SimpleRenderer | UniqueValueRenderer | ClassBreaksRenderer | HeatmapRenderer | PredominanceRenderer | TemporalRenderer | UniqueValueFromStyle | PointCloudRenderer | VectorFieldRenderer;
/**
 * The type of rotation for RendererBase.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type RotationType = "arithmetic" | "geographic";
/**
 * The authoringInfo is an object containing metadata about the authoring
 * process for creating a renderer object. This allows the authoring clients to
 * save specific overridable settings so that next time it is accessed via the
 * UI, their selections are remembered. Non-authoring clients should ignore it.
 * In order to support the slider with color/size/transparency information, the
 * selection of the various themes, classification, and additional properties
 * are saved within this object.
 *
 * Note: The authoringInfo object is not required with a renderer. It is only
 * used if rendering was generated using Map Viewer rendering tools.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/authoringInfo/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/authoringInfo/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface AuthoringInfo {
    /**
     * Used for classed color or size. The default value is esriClassifyManual.
     * See {@link ClassificationMethod}.
     */
    classificationMethod?: ClassificationMethod;
    /**
     * A colorRamp object is used to specify a range of colors that are applied
     * to a group of symbols.
     */
    colorRamp?: ColorRamp;
    /**
     * Contains information about an attribute field.
     */
    field?: Field;
    /**
     * An array of string values representing field names used for creating
     * predominance renderers.
     */
    fields?: string;
    /**
     * Use if the classificationMethod is esriClassifyStandardDeviation.
     * Possible values: 0.25, 0.33, 0.5, 1.
     */
    standardDeviationInterval?: number;
    /**
     * In case of classed renderers this is set to either classedSize or
     * classedColor. See {@link AuthoringInfoType}.
     */
    type?: AuthoringInfoType;
    /**
     * An array of visualVariable objects used for continuous color or size,
     * simple, and unique values with feature opacity.
     */
    visualVariables?: VisualVariable;
}
/**
 * A colorRamp object is used to specify a range of colors that are applied to a
 * group of symbols. See
 * {@link https://developers.arcgis.com/web-map-specification/objects/colorRamp/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface ColorRamp {
    /**
     * Algorithm used for calculating the ramp.
     */
    algorithm?: "esriCIELabAlgorithm" | "esriHSVAlgorithm" | "esriLabLChAlgorithm";
    /**
     * A multipart color ramp is defined by a list of constituent color ramps.
     */
    colorRamps?: ColorRamp[];
    /**
     * Array representing the initial color to start the ramp from.
     */
    fromColor?: [number, number, number, number];
    /**
     * Array representing the final color to end the ramp with.
     */
    toColor?: [number, number, number, number];
    /**
     * Value indicating the type of colorRamp.
     */
    type: "algorithmic" | "multipart";
}
/**
 * The classification method for AuthoringInfo.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type ClassificationMethod = "esriClassifyNaturalBreaks" | "esriClassifyEqualInterval" | "esriClassifyQuantile" | "esriClassifyStandardDeviation" | "esriClassifyGeometricalInterval" | "esriClassifyManual";
/**
 * The type of the AuthoringInfo.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type AuthoringInfoType = "classedColor" | "classedSize" | "predominance";
/**
 * The type of the Renderer.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type RendererType = "simple" | "uniqueValue" | "classBreaks" | "temporal" | "predominance" | "heatmap" | "pointCloudRGBRenderer" | "pointCloudClassBreaksRenderer" | "pointCloudStretchRenderer" | "pointCloudUniqueValueRenderer" | "vectorField";
/**
 * The default Renderer for point geometry.
 *
 * @deprecated Use "json/*" modules instead.
 */
export declare const defaultPointRenderer: SimpleRenderer;
/**
 * The default Renderer for line geometry.
 *
 * @deprecated Use "json/*" modules instead.
 */
export declare const defaultLineRenderer: SimpleRenderer;
/**
 * The default Renderer for polygon geometry.
 *
 * @deprecated Use "json/*" modules instead.
 */
export declare const defaultPolygonRenderer: SimpleRenderer;
