import type { ImageMetadata } from 'astro';

import alcove from '../assets/reviews/alcove/hero.png';
import altTab from '../assets/reviews/alt-tab/hero.jpg';
import cotypist from '../assets/reviews/cotypist/hero.gif';
import fluxMarkdown from '../assets/reviews/flux-markdown/demo.gif';
import folderPeek from '../assets/reviews/folder-peek/screenshot.png';
import hyperkey from '../assets/reviews/hyperkey/hero.png';
import ice from '../assets/reviews/ice/ice-bar.png';
import macMouseFix from '../assets/reviews/mac-mouse-fix/studio-display.png';
import tot from '../assets/reviews/tot/seven-dots.png';

import antinote from '../assets/reviews/antinote/swipe.mp4';
import dockdoor from '../assets/reviews/dockdoor/alttab.mp4';
import homerow from '../assets/reviews/homerow/overlay.mp4';
import monocle from '../assets/reviews/monocle/spotlight.mp4';
import shottr from '../assets/reviews/shottr/text-erase.mp4';
import typewhisper from '../assets/reviews/typewhisper/demo.mp4';

export type Hero =
  | { kind: 'image'; src: ImageMetadata }
  | { kind: 'video'; src: string };

export const heroes: Record<string, Hero | undefined> = {
  alcove: { kind: 'image', src: alcove },
  'alt-tab': { kind: 'image', src: altTab },
  cotypist: { kind: 'image', src: cotypist },
  'flux-markdown': { kind: 'image', src: fluxMarkdown },
  'folder-peek': { kind: 'image', src: folderPeek },
  hyperkey: { kind: 'image', src: hyperkey },
  ice: { kind: 'image', src: ice },
  'mac-mouse-fix': { kind: 'image', src: macMouseFix },
  tot: { kind: 'image', src: tot },
  antinote: { kind: 'video', src: antinote },
  dockdoor: { kind: 'video', src: dockdoor },
  homerow: { kind: 'video', src: homerow },
  monocle: { kind: 'video', src: monocle },
  shottr: { kind: 'video', src: shottr },
  typewhisper: { kind: 'video', src: typewhisper },
};
