import type { DataSourceBase } from "./DataSource.js";
import type { SpatialReference } from "./SpatialReference.js";
/**
 * Query table data source is a layer/table that is defined by a SQL query. See
 * {@link https://developers.arcgis.com/web-map-specification/objects/queryTableDataSource/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/queryTableDataSource/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface QueryTableDataSource extends DataSourceBase {
    /**
     * The geometry type. When querying a table that does not have a geometry
     * column, do not include geometryType.
     */
    geometryType?: "esriGeometryPoint" | "esriGeometryMultipoint" | "esriGeometryPolyline" | "esriGeometryPolygon";
    /**
     * Comma separated list of identifier fields. There are only certain field
     * types that can be used as a unique identifier. These field types include
     * integer, string, GUID, and date. If a single integer field is specified,
     * map server uses the values in that field directly to uniquely identify
     * all features and rows returned from a queryTable. However, if a single
     * string field or a group of fields is used as the unique identifier, map
     * server maps those unique values to an integer.
     */
    oidFields?: string;
    /**
     * The SQL query.
     */
    query?: string;
    /**
     * The spatial reference of the geometry column. When querying a table that
     * does not have a geometry column, do not include spatialReference.
     */
    spatialReference?: SpatialReference;
    /**
     * @inheritDoc
     */
    type: "queryTable";
}
