import type FeatureLayer from "../../layers/FeatureLayer.js";
import type GeoJSONLayer from "../../layers/GeoJSONLayer.js";
import type OrientedImageryLayer from "../../layers/OrientedImageryLayer.js";
import type SceneLayer from "../../layers/SceneLayer.js";
import type KnowledgeGraphSublayer from "../../layers/knowledgeGraph/KnowledgeGraphSublayer.js";
import type SubtypeSublayer from "../../layers/support/SubtypeSublayer.js";
import type FieldInput from "./FieldInput.js";
import type GroupInput from "./GroupInput.js";
import type RelationshipInput from "./RelationshipInput.js";
import type TextElementInput from "./TextElementInput.js";
import type UtilityNetworkAssociationInput from "./UtilityNetworkAssociationInput.js";
import type { FieldValue } from "../../layers/support/fieldUtils.js";

export type FeatureFormLayerUnion = GeoJSONLayer | FeatureLayer | OrientedImageryLayer | SceneLayer | SubtypeSublayer | KnowledgeGraphSublayer;

export type FeatureFormSupportedInput = FieldInput | GroupInput | RelationshipInput | TextElementInput | UtilityNetworkAssociationInput;

export type Attributes = Record<string, FieldValue>;