import type { TimeIntervalUnits, WebMapWidgetsObject } from "../support/esri.js";
/**
 * The widgets object contains widgets that should be exposed to the user.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/widgets/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/widgets/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface Widgets {
    /**
     * Active range.
     */
    range?: Range;
    /**
     * Time animation is controlled by a configurable time slider. The time
     * slider widget will act upon all the time aware layers in the map.
     */
    timeSlider?: TimeSlider;
    /**
     * Configurable properties used by the floor filter widget.
     */
    floorFilter?: FloorFilter;
}
/**
 * Configurable properties used by the floor filter widget. See
 * {@link https://developers.arcgis.com/web-map-specification/objects/floorFilter/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface FloorFilter {
    /**
     * Indicates whether the floor filter is actively filtering the displayed
     * content according to the floor filter selection.
     */
    enabled?: boolean;
    /**
     * Contains a facility identifier for the initially selected facility in the
     * floor filter.
     */
    facility?: string;
    /**
     * Contains a level identifier for the initially selected floor, which is
     * used when filtering floor-aware layers.
     */
    level?: string;
    /**
     * Indicates whether the floor filter is showing long names instead of short
     * names for floor levels.
     */
    longNames?: boolean;
    /**
     * Indicates whether the floor filter has been minimized to show only the
     * levels list instead of showing the full set of breadcrumbs.
     */
    minimized?: boolean;
    /**
     * Indicates whether the floor filter has been pinned to show the floor
     * levels list, instead of including the levels as a breadcrumb dropdown.
     */
    pinnedLevels?: boolean;
    /**
     * Contains a site identifier for the initially selected site in the floor
     * filter.
     */
    siteIdentifier?: string;
}
/**
 * Time animation is controlled by a configurable time slider. Those
 * configurations are saved to the web map as a timeSlider widget.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/timeSlider/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface TimeSlider {
    /**
     * Properties for the time slider.
     */
    properties: {
        /**
         * The end of the time slider.
         */
        endTime?: number;
        /**
         * Number of stops within the timeSlider widget.
         */
        numberOfStops?: number | nullish;
        /**
         * The start of the time slider.
         */
        startTime?: number;
        /**
         * The default value for the thumbCount is 1.
         */
        thumbCount?: number;
        /**
         * Rate at which the time animation plays.
         */
        thumbMovingRate?: number;
        /**
         * The interval which has been defined for the time slider. See
         * {@link https://developers.arcgis.com/web-map-specification/objects/timeStopInterval/}.
         */
        timeStopInterval?: {
            /**
             * The length of the time interval.
             */
            interval?: number;
            /**
             * The units used to define the interval. See {@link TimeUnits}.
             */
            units?: TimeUnits;
        };
    };
}
/**
 * Range object.
 *
 * See {@link https://developers.arcgis.com/web-map-specification/objects/range/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/range/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface Range {
    /**
     * Indicates the mode in which the active range should be presented to the
     * user. Must be one of the following values: slider, picker.
     */
    interactionMode?: string;
    /**
     * This is used to generate the activeRangeValues if activeRangeValues are
     * not specified.
     */
    numberOfStops?: number;
    /**
     * Interval in which stops should be generated.
     */
    stopInterval?: number;
}
/**
 * Time units enum.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type TimeUnits = "esriTimeUnitsCenturies" | "esriTimeUnitsDays" | "esriTimeUnitsDecades" | "esriTimeUnitsHours" | "esriTimeUnitsMilliseconds" | "esriTimeUnitsMinutes" | "esriTimeUnitsMonths" | "esriTimeUnitsSeconds" | "esriTimeUnitsWeeks" | "esriTimeUnitsYears";
/**
 * Applies Portal WebMapWidgets config to an ESRI JS API WebMapWidgets object.
 *
 * @deprecated Use "json/*" modules instead.
 * @param portalWidgetsConfig The portal webmap widgets config.
 * @param esriWidgetsObject The ESRI JS API WebMapWidgets object. If this
 *   property is undefined or not included, a new instance will be created and
 *   returned.
 */
export declare function applyToEsriApiWidgetsObject(portalWidgetsConfig: Widgets, esriWidgetsObject?: WebMapWidgetsObject | null): WebMapWidgetsObject;
/**
 * Applies Esri JS API WebMapWidgets object properties to a Portal WebMapWidgets
 * oject.
 *
 * @deprecated Use "json/*" modules instead.
 * @param esriWidgetsObject The ESRI JS API WebMapWidgets object.
 * @param portalWidgetsConfig The Portal webmap widgets config. If this property
 *   is undefined or not included, a new instance will be created and returned.
 */
export declare function fromEsriApiWidgetsObject(esriWidgetsObject: WebMapWidgetsObject | undefined, portalWidgetsConfig?: Widgets): Widgets;
/**
 * Returns the ESRI 4.x JS API version of TimeInterval units, given ESRI Webmap
 * Spec TimeInterval units.
 *
 * @deprecated Use "json/*" modules instead.
 * @param unit The ESRI Webmap Spec TimeInterval units.
 */
export declare function toEsriApiTimeInterval(unit: TimeUnits): TimeIntervalUnits;
/**
 * Returns the ESRI Webmap Spec TimeInterval units, given ESRI 4.x JS API
 * version of TimeInterval units.
 *
 * @deprecated Use "json/*" modules instead.
 * @param unit The ESRI 4.x JS API TimeInterval units.
 */
export declare function fromEsriApiTimeInterval(unit: TimeIntervalUnits): TimeUnits;
