import type { LucideIcon } from "lucide-react";
import {
  Activity,
  Anchor,
  Aperture,
  AppWindow,
  Archive,
  AudioLines,
  AudioWaveform,
  BarChart3,
  Barcode,
  BellRing,
  Book,
  BookImage,
  BookOpen,
  Braces,
  Captions,
  CheckCircle2,
  Circle,
  Code,
  Columns2,
  Combine,
  Contrast,
  Copy,
  Crop,
  Crosshair,
  Droplets,
  Eraser,
  Expand,
  Eye,
  EyeOff,
  FastForward,
  FileArchive,
  FileAudio,
  FileCode,
  FileCode2,
  FileImage,
  FileOutput,
  FilePen,
  FileText,
  FileType,
  FileType2,
  FileVideo,
  FileX,
  Film,
  Focus,
  FolderArchive,
  FolderOpen,
  Frame,
  GalleryHorizontalEnd,
  GalleryThumbnails,
  Gauge,
  Globe,
  Grid2x2,
  Grid3x3,
  Hash,
  Image,
  ImageDown,
  ImagePlus,
  Images,
  Info,
  Laugh,
  Layers,
  Layers2,
  LayoutGrid,
  ListOrdered,
  Lock,
  LockOpen,
  Maximize2,
  MessageSquareText,
  MicVocal,
  Minimize2,
  Music,
  PaintBucket,
  Palette,
  PenLine,
  PenTool,
  Pipette,
  Presentation,
  QrCode,
  RectangleHorizontal,
  Repeat,
  Rewind,
  RotateCw,
  Scaling,
  ScanEye,
  ScanFace,
  ScanLine,
  ScanText,
  Scissors,
  ShieldCheck,
  ShieldOff,
  SlidersHorizontal,
  Sparkles,
  Split,
  Stamp,
  Star,
  Table,
  Tags,
  TextCursorInput,
  Type,
  Undo2,
  UserCheck,
  Video,
  Volume2,
  VolumeX,
  Wand,
  Wand2,
  Waves,
  Wrench,
  Zap,
  ZoomIn,
} from "lucide-react";

// Only the icons actually used by tool definitions in @snapotter/shared constants.
// Avoids `import * as icons from "lucide-react"` which pulls the entire 1000+ icon library.
export const ICON_MAP: Record<string, LucideIcon> = {
  Activity,
  Anchor,
  Aperture,
  AppWindow,
  Archive,
  AudioLines,
  AudioWaveform,
  Barcode,
  BarChart3,
  BellRing,
  Book,
  BookImage,
  BookOpen,
  Braces,
  Captions,
  CheckCircle2,
  Circle,
  Code,
  Columns2,
  Combine,
  Contrast,
  Copy,
  Crop,
  Crosshair,
  Droplets,
  Eraser,
  Expand,
  Eye,
  EyeOff,
  FastForward,
  FileArchive,
  FileAudio,
  FileCode,
  FileCode2,
  FilePen,
  FileImage,
  FileOutput,
  FileVideo,
  FileX,
  FileText,
  FileType,
  FileType2,
  Film,
  Focus,
  FolderArchive,
  FolderOpen,
  Frame,
  GalleryHorizontalEnd,
  GalleryThumbnails,
  Gauge,
  Globe,
  Grid2x2,
  Grid3x3,
  Hash,
  Image,
  ImageDown,
  ImagePlus,
  Images,
  Info,
  Laugh,
  Layers,
  LayoutGrid,
  ListOrdered,
  Lock,
  LockOpen,
  Maximize2,
  MessageSquareText,
  MicVocal,
  Minimize2,
  Music,
  PaintBucket,
  Palette,
  PenLine,
  PenTool,
  Pipette,
  Presentation,
  QrCode,
  RectangleHorizontal,
  Rewind,
  RotateCw,
  Scaling,
  Scissors,
  ScanEye,
  ScanFace,
  ScanLine,
  ScanText,
  ShieldCheck,
  ShieldOff,
  SlidersHorizontal,
  Sparkles,
  Split,
  Stamp,
  Star,
  Table,
  TextCursorInput,
  Type,
  Undo2,
  UserCheck,
  Video,
  Volume2,
  VolumeX,
  Wand,
  Wand2,
  Waves,
  Wrench,
  Repeat,
  Zap,
  ZoomIn,
  Layers2,
  Tags,
};
