import type { FeatureLayerCapabilities, SceneLayerCapabilities } from "../../layers/types.js";
import type { ImageryLayerCapabilities } from "../../layers/mixins/ArcGISImageService.js";

/**
 * Determines if the given layer is a Table
 *
 * @param layer
 * @internal
 * @internal
 */
export function isTable(layer: unknown): boolean;

/**
 * Determines the effective capabilities of the given layer
 *
 * @param layer
 * @returns The effective capabilities of the given layer, which may include a subset of the full capabilities depending on the layer type. Returns `null` if the effective capabilities cannot be determined.
 * @internal
 * @internal
 */
export function getEffectiveLayerCapabilities(layer: unknown): FeatureLayerCapabilities | SceneLayerCapabilities | ImageryLayerCapabilities | null | undefined;