diff --git a/pkg/common/types.go b/pkg/common/types.go
index 67ef834a62936bcc520b20ed6e7cdb14bb1b06ea..b7dbe6fc03948bba2ad765b164836984055c69de 100644
--- a/pkg/common/types.go
+++ b/pkg/common/types.go
@@ -97,6 +97,28 @@ type Manifest struct {
 	Layout         *Layout        `json:"layout,omitempty"`
 }
 
+// Expander controls how template/ is evaluated.
+type Expander struct {
+	// Currently just Expandybird or GoTemplate
+	Name string `json:"name"`
+	// During evaluation, which file to start from.
+	Entrypoint string `json:"entry_point"`
+}
+
+// ChartFile is a file in a chart that is not chart.yaml.
+type ChartFile struct {
+	Path    string `json:"path"`    // Path from the root of the chart.
+	Content string `json:"content"` // Base64 encoded file content.
+}
+
+// Chart is our internal representation of the chart.yaml (in structured form) + all supporting files.
+type Chart struct {
+	Name     string       `json:"name"`
+	Expander *Expander    `json:"expander"`
+	Schema   interface{}  `json:"schema"`
+	Files    []*ChartFile `json:"files"`
+}
+
 // Template describes a set of resources to be deployed.
 // Manager expands a Template into a Configuration, which
 // describes the set in a form that can be instantiated.