import EsriSlide from "@arcgis/core/webscene/Slide";
import type { BaseMap } from "./BaseMap.js";
import type { Environment } from "./Environment.js";
import type { Extent } from "./Extent.js";
import type { Point } from "./Point.js";
import type { SpatialReference } from "./SpatialReference.js";
import type { Color } from "./Symbol.js";
import { Viewpoint } from "./Viewpoint.js";
import { WebSceneBaseMap } from "./WebSceneBaseMap.js";
export declare namespace Slide {
    /**
     * Converts an ArcGIS Portal JSON representation of a slide to its Esri
     * JavaScript API equivalent.
     *
     * @deprecated Use "json/*" modules instead.
     * @param slideJson The slide JSON to convert.
     */
    function toEsriApiSlide(slideJson: Slide): Promise<EsriSlide>;
    /**
     * Converts an Esri JavaScript API Slide object to its ArcGIS Portal JSON
     * representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param slide The Slide object to convert.
     */
    function fromEsriApiSlide(slide: EsriSlide): Slide;
}
/**
 * A slide stores a snapshot of several pre-set properties of the WebScene, such
 * as the basemap, viewpoint and visible layers.
 *
 * See {@link https://developers.arcgis.com/web-map-specification/objects/slide/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/slide/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface Slide {
    /**
     * The basemap of the scene. Only the base and reference layers of the
     * basemap are stored in a slide. This value can be an instance of Basemap
     * or one of the strings listed in the table below. Same as baseMap, but
     * with no elevationLayers property.
     */
    baseMap?: BaseMap | WebSceneBaseMap | string;
    /**
     * Text description of the individual presentation slide.
     */
    description?: {
        /**
         * Text to display as slide description.
         */
        text: string;
    };
    /**
     * Represents settings that affect the environment in which the WebScene is
     * displayed (such as lighting).
     */
    environment?: Environment;
    /**
     * The standard Esri extent object with spatialReference, xmax, xmin, ymax
     * and ymin. [WebMap Only].
     */
    extent?: Extent;
    /**
     * Indicates whether the slide should be hidden within the presentation.
     * [WebMap Only].
     */
    hidden?: boolean;
    /**
     * The unique id of a slide within the slides property of a Presentation.
     */
    id?: string;
    /**
     * An object with a centerPoint object and sometimes a resolution. [WebMap
     * Only]
     * {@link https://developers.arcgis.com/web-map-specification/objects/mapLocation/}.
     */
    mapLocation?: {
        /**
         * The center of the map in with a x and y coordinate.
         */
        centerPoint?: Point;
        /**
         * Well-known ID (WKID) or well-known text (WKT).
         */
        spatialReference?: SpatialReference;
    };
    /**
     * A data URI encoded thumbnail. See
     * {@link https://developers.arcgis.com/web-scene-specification/objects/thumbnail/}.
     */
    thumbnail?: {
        /**
         * The URI pointing to the thumbnail image representing the slide.
         */
        url: string;
    };
    /**
     * An array of two numbers. The first one indicates start time and the
     * second one indicates end time. [WebMap Only].
     */
    timeExtent?: number[];
    /**
     * Text and formatting for the title of the individual presentation slide
     * https://developers.arcgis.com/web-map-specification/objects/title/
     * {@link https://developers.arcgis.com/web-scene-specification/objects/title/}.
     */
    title?: {
        /**
         * The color of the title text box, for example [0,0,0,255].
         */
        backgroundColor?: Color;
        /**
         * The color of the border surrounding the title text box, for example
         * [0,0,0,255].
         */
        borderColor?: Color;
        /**
         * The sizing of the border.
         */
        borderSize?: number;
        /**
         * The font style picked for the title.
         */
        font?: string;
        /**
         * The size of the font for the text in the title.
         */
        fontSize?: number;
        /**
         * Color of the text.
         */
        foregroundColor?: Color;
        /**
         * Alignment of the text box.
         */
        horizontalAlignment?: number;
        /**
         * The opacity of background and border.
         */
        opacity?: number;
        /**
         * Text to display as titles for slide.
         */
        text?: string;
        /**
         * A number between 1 and 7.
         */
        titleFontStyle?: number;
    };
    /**
     * The viewpoint of the slide. This acts like a bookmark, saving a
     * predefined location or point of view from which to view the scene.
     */
    viewpoint?: Viewpoint;
    /**
     * An array of numbers indicating layer visibility. Stores references (by
     * ID) to the layers that are set as visible when a slide is applied to a
     * MapView or SceneView. See
     * {@link https://developers.arcgis.com/web-map-specification/objects/visibleLayer/}
     * {@link https://developers.arcgis.com/web-scene-specification/objects/visibleLayer/}.
     */
    visibleLayers?: {
        /**
         * An array of arrays.
         */
        featureVisibility?: number[][];
        /**
         * The id of the layer as listed on the operational layer.
         */
        id?: string;
        /**
         * An integer specifying the sublayer id.
         */
        subLayerIds?: number[];
    }[];
    /**
     * A presentation slide's visiblePopup which contains anchorPoint,
     * featureId, layerId, and subLayerId. See
     * {@link https://developers.arcgis.com/web-map-specification/objects/visiblePopup/}.
     */
    visiblePopup?: {
        /**
         * Object with spatialReference, x, and y.
         */
        anchorPoint?: Point;
        /**
         * An integer specifying the feature's id.
         */
        featureId?: number;
        /**
         * A string specifying the layer id.
         */
        layerId?: string;
        /**
         * An integer specifying the sublayer id.
         */
        subLayerIds?: number[];
    };
}
