import type { Contract, ContractDefinition } from 'autumndb'; export type MetaTitle = string; export type MetaDescription = string; export type PublishDate = string; export type FeaturedImage = string; export type OpenGraphSocialImage = string; export type DifficultyLevel = 'Easy' | 'Medium' | 'Hard'; export type ApproxCompletionTime = '30m' | '2hr' | '4hr+'; export type ProjectCost = '$' | '$$$' | '$$$$$$'; export type Subheader = string; export type Value = string; export type Value1 = string; export type MediaTitle = string; export type MediaURL = string; export type ImageURL = string; export type ImageAltText = string; export type ImageCaption = string; export type EditorSNote = string; export type CTASubhead = string; export type CTAText = string; export type CTAStyle = 'Sign up' | 'Check it out' | 'Learn more'; export type TargetURL = string; export type UTMMedium = string; export type UTMCampaign = string; export type UTMContent = string; export type PostBody = Array; export type PostPromotionalContent = Array; export interface BlogPostData { post_header_meta?: PostHeaderAndMeta; subheader?: Subheader; content?: PostBody; post_promo?: PostPromotionalContent; [k: string]: unknown; } export interface PostHeaderAndMeta { meta_title?: MetaTitle; meta_desc?: MetaDescription; date?: PublishDate; featured_img?: FeaturedImage; og_img?: OpenGraphSocialImage; post_info?: AdditionalInfo; [k: string]: unknown; } export interface AdditionalInfo { difficulty?: DifficultyLevel; completion_time?: ApproxCompletionTime; project_cost?: ProjectCost; [k: string]: unknown; } export interface Text { text?: Value; [k: string]: unknown; } export interface ProjectStep { project_step?: Value1; [k: string]: unknown; } export interface MediaYoutubeVimeo { media_title?: MediaTitle; media_url?: MediaURL; [k: string]: unknown; } export interface Images { image_url?: ImageURL; image_alt?: ImageAltText; image_caption?: ImageCaption; [k: string]: unknown; } export interface PromotionalObject { cta_subhead?: CTASubhead; cta_copy?: CTAText; cta_style?: CTAStyle; cta_url?: TargetURL; cta_utm_medium?: UTMMedium; cta_utm_campaign?: UTMCampaign; cta_utm_content?: UTMContent; [k: string]: unknown; } export type BlogPostContractDefinition = ContractDefinition; export type BlogPostContract = Contract;