import type { DataSourceBase } from "./DataSource.js";
import type { DynamicDataLayer } from "./DynamicDataLayer.js";
import type { DynamicMapLayer } from "./DynamicMapLayer.js";
/**
 * Join Table data source is the result of a join operation. Nested joins are
 * supported. To use nested joins, set either leftTableSource or
 * rightTableSource to be a joinTable. See
 * {@link https://developers.arcgis.com/web-map-specification/objects/joinTableDataSource/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/joinTableDataSource/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface JoinTableDataSource extends DataSourceBase {
    /**
     * The type of join (left outer or left inner). See {@link JoinType}.
     */
    joinType?: JoinType;
    /**
     * Field name from the left table.
     */
    leftTableKey?: string;
    /**
     * The left source. If the leftTableSource is a table, the resulting
     * joinTable is a table. If the leftTableSource is a layer, the resulting
     * joinTable is a layer.
     */
    leftTableSource?: DynamicDataLayer | DynamicMapLayer;
    /**
     * Field name from the right table.
     */
    rightTableKey?: string;
    /**
     * The right table source.
     */
    rightTableSource?: DynamicDataLayer | DynamicMapLayer;
    /**
     * @inheritDoc
     */
    type: "joinTable";
}
/**
 * The type of the JoinTableDataSource.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type JoinType = "esriLeftOuterJoin" | "esriLeftInnerJoin";
