/** * Pure item model for vz-hub. Turns raw parsed attributes into a * normalized, playable HubItem list (stable ids, defaults, drops items with no * source) so the parsing is unit-tested rather than done inline in the element. */ export interface RawHubItem { src?: string | null; poster?: string | null; title?: string | null; format?: string | null; contentId?: string | null; } export interface HubItem { /** Stable id: the content-id if present, else a positional `item-`. */ id: string; /** Playable media URL. */ src: string; /** Thumbnail shown on the lobby panel (null = fall back to a placeholder). */ poster: string | null; title: string; /** VzFormat string; defaults to MONO_360. */ format: string; } /** Heuristic: does a source URL point at a still image (→ vz-img) vs video (→ vz-video)? */ export declare function isImageSource(src: string): boolean; export declare function normalizeHubItems(raw: RawHubItem[]): HubItem[]; //# sourceMappingURL=hub-model.d.ts.map