import type { SpatialReferenceJson } from "@vertigis/arcgis-extensions/json/SpatialReferenceJson.js";
import type { GeographicTransformationJson, Transformation as ArcXTransformation } from "@vertigis/arcgis-extensions/utilities/geometry";
import type { ServiceModelProperties } from "./ServiceModelProperties.js";
/**
 * @inheritdoc
 */
export interface Transformation extends ArcXTransformation {
    /**
     * The unique ID for the transformation item.
     */
    id?: string;
}
/**
 * Specifies a transformation to use between two spatial references.
 */
export interface TransformationJson {
    /**
     * The unique ID for the transformation item.
     */
    id?: string;
    /**
     * The spatial reference that the data is collected in.
     */
    inSpatialReference?: SpatialReferenceJson;
    /**
     * The spatial reference that the data is displayed in (typically the SR of
     * the configured map's feature layers, or the SR of the map itself).
     */
    outSpatialReference?: SpatialReferenceJson;
    /**
     * The transformation to get from in SR to out SR.
     */
    transformation?: GeographicTransformationJson;
}
/**
 * Configuration for the coordinate service.
 */
export interface CoordinateModelProperties extends ServiceModelProperties {
    /**
     * Rules to apply when transforming coordinates between coordinate systems.
     */
    transformations?: (Transformation | TransformationJson)[];
}
