import type { AspectRatio, ObjectFit } from './types'; export type MediaItem = { url: string; playable?: boolean; /** Poster shown for a playable item before playback; falls back to the video's first frame. */ cover?: string; }; type Props = { items: MediaItem[]; /** @default 'vertical' */ aspectRatio?: AspectRatio; /** @default 'contain' */ objectFit?: ObjectFit; /** @default true */ showSeekBar?: boolean; /** Duration in seconds; rendered as a badge overlay at the bottom-right of the media. `≤ 0` / `undefined` renders nothing. */ duration?: number; }; /** * Media slot for `GridCard`. Renders an empty placeholder, a single `Image` / `VideoPlayer`, or * a `Carousel` of mixed image / video items. Seek-bar renders below the media whenever `showSeekBar` * (default true); the bar itself is hidden via `visibility: hidden` when the current item isn't * playable (preserves card height). Optional `duration` overlay renders bottom-right. * * The play glyph of a playable item is a `PlayIndicator` — size and shadow are tuned with * `--sc-kit--play-indicator--size` / `--sc-kit--play-indicator--filter`. * * ### CSS Custom Properties * | Property | Description | Default | * |---|---|---| * | `--sc-kit--grid-card--media--object-fit` | Object-fit forwarded to image / video | `contain` (per `objectFit` prop) | * | `--sc-kit--grid-card--media--padding` | Inset between the media backdrop and the image / video | `0` | */ declare const Cmp: import("svelte").Component; type Cmp = ReturnType; export default Cmp;