import type FeatureLayer from "@arcgis/core/layers/FeatureLayer";
import type { DefinitionEditor } from "./DefinitionEditor.js";
import type { FormInfo } from "./FormInfo.js";
import { LayerDefinition } from "./LayerDefinition.js";
import { PopupInfo } from "./PopupInfo.js";
import type { Table as EsriTable } from "./Table.js";
/**
 * Table type constants.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type TableType = "ArcGISServiceTable";
/**
 * Available operations applicable to table.
 *
 * @deprecated Use "json/*" modules instead.
 */
export type CapabilitiesEnum = "Create" | "Delete" | "Query" | "Update" | "Editing";
/**
 * Root element in the web map specifying an array of table objects.
 *
 * See {@link https://developers.arcgis.com/web-map-specification/objects/table/}
 * {@link https://developers.arcgis.com/web-scene-specification/objects/table/}.
 *
 * @deprecated Use "json/*" modules instead.
 */
export interface Table {
    /**
     * A comma-separated string listing which editing operations are allowed on
     * an editable feature service. Available operations include: 'Create',
     * 'Delete', 'Query', 'Update', and 'Editing'. See CapabilitiesEnum.
     */
    capabilities?: string;
    /**
     * Object indicating the definitionEditor used as a layer's interactive
     * filter.
     */
    definitionEditor?: DefinitionEditor;
    /**
     * A formInfo object defining the content of the form when you are editing a
     * record.
     */
    formInfo?: FormInfo;
    /**
     * Unique string identifier for the table.
     */
    id?: string;
    /**
     * Unique string value indicating an item registered in ArcGIS Online or
     * your organization's portal.
     */
    itemId?: string;
    /**
     * A layerDefinition object defining the attribute schema and drawing
     * information for the layer. Used with CSV layers.
     */
    layerDefinition?: LayerDefinition;
    /**
     * An object defining the content of popup windows when you query a record
     * and the sort option for child related records.
     */
    popupInfo?: PopupInfo;
    /**
     * Refresh interval of the table in minutes. Non-zero value indicates
     * automatic table refresh at the specified interval. Value of 0 indicates
     * auto refresh is not enabled.
     */
    refreshInterval?: number;
    /**
     * String value for the title of the table.
     */
    title?: string;
    /**
     * String value indicating the URL reference of the hosted table.
     */
    url?: string;
    /**
     * The table's type. If the type is omitted, it is assumed to be
     * 'ArcGISServiceTable'. See {@link portal/Table!TableType}.
     */
    $tableType?: TableType;
}
/**
 * Creates an Esri Table Layer object from the given Portal table JSON.
 *
 * @deprecated Use "json/*" modules instead.
 * @param tableJson The JSON to apply.
 */
export declare function toEsriApiTable(tableJson: EsriTable): Promise<FeatureLayer>;
/**
 * Applies Portal table JSON properties to a Esri table FeatureLayer.
 *
 * @deprecated Use "json/*" modules instead.
 * @param tableJson The JSON to apply.
 * @param table The table to update.
 */
export declare function applyToEsriTable(tableJson: EsriTable, table: FeatureLayer): Promise<void>;
/**
 * Take an esri Table FeatureLayer object and return the Portal table JSON.
 *
 * @deprecated Use "json/*" modules instead.
 * @param table Geocortex table.
 * @returns Portal table JSON.
 */
export declare function fromEsriTable(table: FeatureLayer): EsriTable;
