import type { Link } from './links' import type { Phone, Email } from './base' interface VisualMediaBase { /** The URL of the media file */ src: string /** The slug for the media */ slug?: string /** Description of the media for accessibility purposes */ description?: string /** The title of the media */ title?: string /** The height of the media in pixels */ height?: number /** The width of the media in pixels */ width?: number /** An action when the item is clicked */ action?: { /** The URL to navigate to when the media is clicked */ link: Link | Phone | Email } } export type VisualMedia = | (VisualMediaBase & { type: 'image' /** Additional parameters specific to images, such as focal point and alt text. */ parameters?: ImageParameters }) | (VisualMediaBase & { type: 'video' /** Additional parameters specific to videos, such as thumbnail, alt text, and whether the video has audio. */ parameters?: VideoParameters }) type VideoParameters = { /** The URL of the video thumbnail */ thumbnail?: string /** Alternative text for the video */ alt?: string /** Whether the video has audio */ hasAudio?: boolean } type ImageParameters = { /** The focal point for the image */ focalPoint?: [number, number] /** The alt text for the image */ alt?: string }