export interface AnchorBlockData { name?: string; } export interface DamFileDownloadLinkBlockData { file?: { id: string; name: string; fileUrl: string; size: number; mimetype: string; scope?: unknown; altText?: string; title?: string; }; openFileType: "NewTab" | "Download"; } export interface DamImageBlockData { attachedBlocks: Array<{ type: string; props: PixelImageBlockData | SvgImageBlockData; }>; activeType?: string; block?: { type: string; props: PixelImageBlockData | SvgImageBlockData; }; } export interface DamVideoBlockData { autoplay?: boolean; showControls?: boolean; loop?: boolean; previewImage: PixelImageBlockData; damFile?: { id: string; name: string; size: number; mimetype: string; contentHash: string; title?: string; altText?: string; aiContentType?: "Generated" | "Modified"; archived: boolean; scope?: unknown; fileUrl: string; captions?: Array<{ id: string; language: string; fileUrl: string; }>; }; } export interface EmailLinkBlockData { email?: string; } export interface ExternalLinkBlockData { targetUrl?: string; openInNewWindow: boolean; noFollow: boolean; } export interface InternalLinkBlockData { targetPageAnchor?: string; targetPage?: { id: string; name: string; path: string; scope?: unknown; documentType: string; }; } export interface NewsletterImageBlockData { image: PixelImageBlockData; } export interface PhoneLinkBlockData { phone?: string; } export interface PixelImageBlockData { damFile?: { id: string; name: string; size: number; mimetype: string; contentHash: string; title?: string; altText?: string; aiContentType?: "Generated" | "Modified"; archived: boolean; scope?: unknown; image?: { width: number; height: number; cropArea: { focalPoint: "SMART" | "CENTER" | "NORTHWEST" | "NORTHEAST" | "SOUTHWEST" | "SOUTHEAST"; width?: number; height?: number; x?: number; y?: number; }; dominantColor?: string; }; fileUrl: string; }; cropArea?: { focalPoint: "SMART" | "CENTER" | "NORTHWEST" | "NORTHEAST" | "SOUTHWEST" | "SOUTHEAST"; width?: number; height?: number; x?: number; y?: number; }; urlTemplate: string; } export interface SpaceBlockData { height: number; } export interface SvgImageBlockData { damFile?: { id: string; name: string; size: number; mimetype: string; contentHash: string; title?: string; altText?: string; archived: boolean; scope?: unknown; fileUrl: string; }; } export interface VimeoVideoBlockData { autoplay?: boolean; showControls?: boolean; loop?: boolean; previewImage: PixelImageBlockData; vimeoIdentifier?: string; } export interface YouTubeVideoBlockData { autoplay?: boolean; showControls?: boolean; loop?: boolean; previewImage: PixelImageBlockData; youtubeIdentifier?: string; } export type AllBlockNames = "Anchor" | "DamFileDownloadLink" | "DamImage" | "DamVideo" | "EmailLink" | "ExternalLink" | "InternalLink" | "NewsletterImage" | "PhoneLink" | "PixelImage" | "Space" | "SvgImage" | "VimeoVideo" | "YouTubeVideo";