import type CatalogLayer from "@arcgis/core/layers/CatalogLayer.js";
import type KnowledgeGraphLayer from "@arcgis/core/layers/KnowledgeGraphLayer.js";
import type MapImageLayer from "@arcgis/core/layers/MapImageLayer.js";
import type TileLayer from "@arcgis/core/layers/TileLayer.js";
import type { CatalogLayerListProperties } from "@arcgis/core/widgets/CatalogLayerList.js";
import type { TableListProperties } from "@arcgis/core/widgets/TableList.js";

/** Catalog layer list configuration passed through Layer List (next). */
export type CatalogLayerListParams = CatalogLayerListProperties;

/** Table list configuration passed through Layer List (next). */
export type TableListParams = TableListProperties;

/** Layer types that can open a nested flow list from Layer List (next). */
export type FlowLayer = CatalogLayer | SubtablesLayer;

/** Layer types that expose tables via the Table List flow. */
export type SubtablesLayer = KnowledgeGraphLayer | MapImageLayer | TileLayer;