import type { MediaItem } from "../mediaItems"; /** All copy shown in the video player, merged over `defaultMediaVideoPlayerLabels`. */ export interface MediaVideoPlayerLabels { /** Accessible name for the player region, combined with `label`. */ videoPlayer: string; /** Shown instead of the video when it fails to load. */ videoError: string; /** Big center play button and transport play toggle, when paused. */ play: string; /** Transport play toggle, shown while playing. */ pause: string; /** Accessible name of the transport `role="toolbar"` control group. */ videoControls: string; /** Accessible name of the seek slider. */ seek: string; /** Rewind-`SEEK_STEP_SECONDS` transport button, hint "J". */ rewind: string; /** Forward-`SEEK_STEP_SECONDS` transport button, hint "L". */ forward: string; /** Mute-toggle label shown while muted or at zero volume. */ unmute: string; /** Mute-toggle label shown while audible. */ mute: string; /** Accessible name of the volume slider. */ volume: string; /** Accessible name of the playback-speed menu. */ speed: string; /** Suffix shown next to "1x" in the speed menu, e.g. "1x - Normal". */ normalSpeed: string; /** Caption toggle button, only rendered once the video reports text tracks. */ captions: string; /** Toggle button, only rendered when the browser supports picture-in-picture. */ pip: string; /** Download transport button's accessible name. */ download: string; /** Fullscreen toggle label shown while already fullscreen. */ exitFullscreen: string; /** Fullscreen toggle label shown while not fullscreen. */ fullscreen: string; /** Builds the seek slider's `aria-valuetext` from two already-`formatClock`-ed strings. */ seekValue: (current: string, total: string) => string; /** Previous-item transport button; only rendered when `onPrevious` is passed. */ previous: string; /** Next-item transport button; only rendered when `onNext` is passed. */ next: string; /** @deprecated Never read by MediaVideoPlayer; defined but unused. */ loading: string; /** Shown for a source extension known not to play natively (avi/mkv/m3u8), instead of attempting playback. */ unsupportedFormat: string; /** Hint text under `unsupportedFormat`, prompting a download instead. */ unsupportedFormatHint: string; /** Screen-reader announcement for a double-click/tap skip, distinct from the visible ripple. */ skipBack: (seconds: number) => string; /** Screen-reader announcement for a double-click/tap skip forward; counterpart of `skipBack`. */ skipForward: (seconds: number) => string; } export declare const defaultMediaVideoPlayerLabels: MediaVideoPlayerLabels; /** Props for the Netflix/Prime-style video transport rendered for `kind: "video"` items. */ export interface MediaVideoPlayerProps { /** The video to play; changing `item.key` resets playback state (also guards against a parent that reuses this instance without a key remount). */ item: MediaItem; /** Accessible name for the player region, combined with `videoPlayer`. */ label: string; /** Fires on every `timeupdate`, with the video's current playback position in seconds. */ onTimeChange?: (seconds: number) => void; /** Shows a transport "previous" button when the gallery has a sibling before this item. */ onPrevious?: () => void; /** Shows a transport "next" button when the gallery has a sibling after this item. */ onNext?: () => void; /** Overrides for any of `defaultMediaVideoPlayerLabels`, merged over the defaults. */ labels?: Partial; }