interface Content { path: string active: boolean type: "page" pageTitle: string rows: Row[] id: string meta: { title: string description: string keywords: string } } enum ContentWidth { Full = 0, Normal = 1, Narrow = 2, } interface Row { title: string backgroundImage: string contentWidth: ContentWidth columns: Column[] } type Column = | { contentType: "images"; images: string[] } | { contentType: "moduleImport"; moduleImport: string } | { contentType: "form"; moduleImport: string } | { contentType: "text"; text: string } | { contentType: "googleMaps" } | { contentType: "productSlider" productSlider: { productSource: "manual" | "category" | "bestseller" | "newProducts" | "offers" productSKUs: string[] category: string } } interface SizeChart { rows: Row[] } type Module = | { type: "form"; form: DBFormObj; id: string } | { type: "completeYourLook"; completeYourLook: CompleteYourLook } | { type: "sizeChart"; sizeChart: SizeChart }