export interface Post { /** A unique ID number that identifies a post. */ id: string; /** A post’s unique slug – part of the post’s URL based on its name, i.e. a post called “My Sample Page” has a slug “my-sample-page”. */ slug: string; /** */ permalink: string; /** */ publishDate: Date; /** */ updateDate?: Date; /** */ title: string; /** Optional summary of post content. */ excerpt?: string; /** */ image?: string; /** */ category?: string; /** */ tags?: Array; /** */ author?: string; /** */ metadata?: MetaData; /** */ draft?: boolean; /** */ Content?: unknown; content?: string; /** */ readingTime?: number; } export interface MetaData { title?: string; ignoreTitleTemplate?: boolean; canonical?: string; robots?: MetaDataRobots; description?: string; openGraph?: MetaDataOpenGraph; twitter?: MetaDataTwitter; } export interface MetaDataRobots { index?: boolean; follow?: boolean; } export interface MetaDataImage { url: string; width?: number; height?: number; } export interface MetaDataOpenGraph { url?: string; siteName?: string; images?: Array; locale?: string; type?: string; } export interface MetaDataTwitter { handle?: string; site?: string; cardType?: string; } export interface Image { src: string; alt?: string; } export interface Video { src: string; type?: string; } export interface Widget { id?: string; isDark?: boolean; bg?: string; classes?: Record; } export interface Headline { title?: string; subtitle?: string; tagline?: string; classes?: Record; } interface TeamMember { name?: string; job?: string; image?: Image; socials?: Array; description?: string; classes?: Record; } interface Social { icon?: string; href?: string; } export interface Stat { amount?: number; title?: string; icon?: string; } export interface Item { title?: string; description?: string; icon?: string; classes?: Record; callToAction?: CallToAction; image?: Image; } export interface Price { title?: string; description?: string; price?: number; period?: string; items?: Array; callToAction?: CallToAction; hasRibbon?: boolean; ribbonTitle?: string; } export interface Testimonial { title?: string; testimonial?: string; name?: string; job?: string; image?: string | unknown; } // COMPONENTS export interface CallToAction { targetBlank?: boolean; text?: string; icon?: string; href?: string; classes?: Record; } export interface ItemGrid { items?: Array; columns?: number; defaultIcon?: string; classes?: Record; } export interface Collapse { iconUp?: string; iconDown?: string; items?: Array; columns?: number; classes?: Record; } // WIDGETS export interface Hero extends Headline, Widget { image?: Image; callToAction1?: CallToAction; callToAction2?: CallToAction; isReversed?: boolean; } export interface Team extends Headline, Widget { team?: Array; } export interface Stats extends Headline, Widget { stats?: Array; } export interface Pricing extends Headline, Widget { prices?: Array; } export interface Testimonials extends Headline, Widget { testimonials?: Array; callToAction?: CallToAction; } export interface Clients extends Headline, Widget { icons?: Array; images?: Array; } export interface Features extends Headline, Widget { image?: string | unknown; video?: Video; items: Array; columns: number; callToAction1?: CallToAction; callToAction2?: CallToAction; isReversed?: boolean; } export interface Faqs extends Headline, Widget { iconUp?: string; iconDown?: string; items?: Array; columns?: number; } export interface Steps extends Headline, Widget { items: Array<{ title: string; description?: string; icon?: string; classes?: Record; }>; image?: string | Image; isReversed?: boolean; } export interface Content extends Headline, Widget { content?: string; image?: string | unknown; items?: Array; columns?: number; isReversed?: boolean; isAfterContent?: boolean; }