import type AttachmentElement from "./elements/AttachmentElement.js";
import type FieldElement from "./elements/FieldElement.js";
import type GroupElement from "./elements/GroupElement.js";
import type RelationshipElement from "./elements/RelationshipElement.js";
import type TextElement from "./elements/TextElement.js";
import type UtilityNetworkAssociationsElement from "./elements/UtilityNetworkAssociationsElement.js";

/**
 * Form element types.
 *
 * > [!CAUTION]
 * >
 * > The `AttachmentElement` is not yet fully supported within the SDK and is not intended for use in development. Support will be added in an upcoming release.
 */
export type FormElementUnion = AttachmentElement | FieldElement | GroupElement | RelationshipElement | TextElement | UtilityNetworkAssociationsElement;

export type NestableFormElementUnion = Exclude<FormElementUnion, GroupElement>;