/**
 * Arcade editor utils for Components.
 *
 * @internal
 */
import type ImageryLayer from "../../layers/ImageryLayer.js";
import type ImageryTileLayer from "../../layers/ImageryTileLayer.js";
import type VoxelLayer from "../../layers/VoxelLayer.js";
import type { Variable } from "../../arcade.js";

/**
 * Collect the members that will be available on an arcade Pixel coming from the provided layer.
 *
 * @param layer - The layer a pixel will come from.
 * @returns The declared members as arcade variables.
 * @internal
 */
export function getDeclaredPixelMembers(layer: ImageryLayer | ImageryTileLayer): Promise<Variable[]>;

/**
 * Collect the members that will be available on an arcade Voxel coming from the provided layer.
 *
 * @param layer - The layer a voxel will come from.
 * @returns The declared members as arcade variables.
 * @internal
 */
export function getDeclaredVoxelMembers(layer: VoxelLayer): Promise<Variable[]>;