import { type HydrogenImageProps } from './Image.js'; import { Video } from './Video.js'; import { ExternalVideo } from './ExternalVideo.js'; import { ModelViewer } from './ModelViewer.js'; import type { MediaEdge as MediaEdgeType } from './storefront-api-types.js'; import type { PartialDeep } from 'type-fest'; import type { ModelViewerElement } from '@google/model-viewer/lib/model-viewer.js'; type BaseProps = React.HTMLAttributes; /** * MediaFile renders an `Image`, `Video`, `ExternalVideo`, or `ModelViewer` component. Use the `mediaOptions` prop to customize the props sent to each of these components. * @publicDocs */ export interface MediaFileProps extends BaseProps { /** An object with fields that correspond to the Storefront API's [Media object](https://shopify.dev/api/storefront/reference/products/media). */ data: PartialDeep; /** The options for the `Image`, `Video`, `ExternalVideo`, or `ModelViewer` components. */ mediaOptions?: MediaOptions; } type MediaOptions = { /** Props that will only apply when an `` is rendered */ image?: Omit; /** Props that will only apply when a `