diff --git a/src/utils/actions/action-group.ts b/src/utils/actions/action-group.ts
new file mode 100644
index 0000000..dbfa9a5
--- /dev/null
+++ b/src/utils/actions/action-group.ts
@@ -0,0 +1,33 @@
+/**
+ * Describes a group of inputs or outputs for a GitHub Action.
+ */
+export interface ActionGroup {
+    /**
+     * An optional type name of this group.
+     */
+    type?: string;
+
+    /**
+     * An optional description of this group.
+     */
+    description?: string;
+
+    /**
+     * An array of input or output names that belong to this group.
+     *
+     * The final input or output names will be prefixed with the group name.
+     */
+    include?: string[];
+
+    /**
+     * An array of input or output names that should be excluded from this group.
+     *
+     * These inputs or outputs will still appear in the top-level inputs or outputs.
+     */
+    exclude?: string[];
+}
+
+/**
+ * The default delimiter used when concatenating group and input/output names in action metadata templates.
+ */
+export const DEFAULT_ACTION_GROUP_DELIMITER = "-";