import type { Domain as EsriDomain } from "../support/esri";
import type { DomainType as EsriApiDomainType } from "../support/esri.js";
import { CodedValueDomain } from "./CodedValueDomain.js";
import { InheritedDomain } from "./InheritedDomain.js";
import { RangeDomain } from "./RangeDomain.js";
/**
 * The type of the Domain.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type DomainType = "inherited" | "range" | "codedValue";
export declare namespace DomainType {
    /**
     * Converts from domain type constants used in the Esri JavaScript API to
     * their ArcGIS Portal equivalents.
     *
     * @deprecated Use "json/*" modules instead.
     * @param type The ArcGSI JS API domain type constant.
     */
    function fromEsriApiDomainType(type: NonNullable<EsriApiDomainType>): DomainType;
    /**
     * Converts from ArcGIS Portal domain type constants to their Esri
     * JavaScript API equivalents.
     *
     * @deprecated Use "json/*" modules instead.
     * @param type The Portal JSON domain type.
     */
    function toEsriApiDomainType(type: string): NonNullable<EsriApiDomainType>;
}
export declare namespace Domain {
    /**
     * Converts an ArcGIS Portal JSON representation of a Domain to its Esri
     * JavaScript API representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param domainJson The domain JSON to convert.
     */
    function toEsriApiDomain(domainJson: Domain): EsriDomain;
    /**
     * Applies an ArcGIS Portal JSON representation of a Domain to its Esri
     * JavaScript API representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param domainJson The domain JSON to apply.
     * @param domain The Domain object to apply the JSON to.
     */
    function applyToEsriApiDomain(domainJson: Domain, domain: EsriDomain): void;
    /**
     * Converts an Esri JavaScript API representation of a Domain to its ArcGIS
     * Portal JSON representation.
     *
     * @deprecated Use "json/*" modules instead.
     * @param domain The Domain object to convert.
     */
    function fromEsriApiDomain(domain: EsriDomain): Domain;
}
/**
 * Base interface for domains.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface DomainBase {
    /**
     * Type of domain. See {@link portal/Domain!DomainType}.
     */
    type: DomainType;
}
/**
 * A domain specifies the set of valid values for a field.
 *
 * See
 * {@link https://developers.arcgis.com/web-map-specification/objects/domain/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/domain/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type Domain = CodedValueDomain | InheritedDomain | RangeDomain;
