import {
  IconClock,
  IconCalendar,
  IconTimeAddTime,
  IconTimeBuffer,
  IconTimeCalendarEvent,
  IconTimeComingUp,
  IconTimeNtp,
  IconTimeTimelockClient,
  IconTimeTimelockClientOccupied,
  IconTimeTimelockerServer,
  IconTimeTimelockerServerOccupied,
  IconTimeTimer,
} from '../raw'
import type { IconDefinition } from '../types'

export {
  IconClock,
  IconCalendar,
  IconTimeAddTime,
  IconTimeBuffer,
  IconTimeCalendarEvent,
  IconTimeComingUp,
  IconTimeNtp,
  IconTimeTimelockClient,
  IconTimeTimelockClientOccupied,
  IconTimeTimelockerServer,
  IconTimeTimelockerServerOccupied,
  IconTimeTimer,
}

export const timeIcons = {
  'time/clock': IconClock,
  'time/calendar': IconCalendar,
  'time/add-time': IconTimeAddTime,
  'time/buffer': IconTimeBuffer,
  'time/calendar-event': IconTimeCalendarEvent,
  'time/coming-up': IconTimeComingUp,
  'time/ntp': IconTimeNtp,
  'time/timelock-client': IconTimeTimelockClient,
  'time/timelock-client-occupied': IconTimeTimelockClientOccupied,
  'time/timelocker-server': IconTimeTimelockerServer,
  'time/timelocker-server-occupied': IconTimeTimelockerServerOccupied,
  'time/timer': IconTimeTimer,
} as const

export const timeIconManifest: IconDefinition[] = [
  {
    name: 'time/clock',
    category: 'time',
    exportName: 'IconClock',
    aliases: ['clock'],
    tags: ['time'],
  },
  {
    name: 'time/calendar',
    category: 'time',
    exportName: 'IconCalendar',
    aliases: ['calendar'],
    tags: ['date'],
  },
  {
    name: 'time/add-time',
    category: 'time',
    exportName: 'IconTimeAddTime',
    aliases: ['time-add-time'],
    tags: ["add time","new time","schedule add"],
    figmaNodeId: '1170:25026',
  },
  {
    name: 'time/buffer',
    category: 'time',
    exportName: 'IconTimeBuffer',
    aliases: ['time-buffer'],
    tags: ["buffer","time buffer","delay"],
    figmaNodeId: '1243:23353',
  },
  {
    name: 'time/calendar-event',
    category: 'time',
    exportName: 'IconTimeCalendarEvent',
    aliases: ['time-calendar-event'],
    tags: ["calendar event","event","schedule"],
    figmaNodeId: '1243:23630',
  },
  {
    name: 'time/coming-up',
    category: 'time',
    exportName: 'IconTimeComingUp',
    aliases: ['time-coming-up'],
    tags: ["coming up","upcoming","next event"],
    figmaNodeId: '1243:23723',
  },
  {
    name: 'time/ntp',
    category: 'time',
    exportName: 'IconTimeNtp',
    aliases: ['time-ntp'],
    tags: ["ntp","network time protocol","time sync"],
    figmaNodeId: '1170:25106',
  },
  {
    name: 'time/timelock-client',
    category: 'time',
    exportName: 'IconTimeTimelockClient',
    aliases: ['time-timelock-client'],
    tags: ["timelock client","time lock client","client lock"],
    figmaNodeId: '1170:24959',
  },
  {
    name: 'time/timelock-client-occupied',
    category: 'time',
    exportName: 'IconTimeTimelockClientOccupied',
    aliases: ['time-timelock-client-occupied'],
    tags: ["timelock client occupied","client occupied","busy client"],
    figmaNodeId: '1278:41529',
  },
  {
    name: 'time/timelocker-server',
    category: 'time',
    exportName: 'IconTimeTimelockerServer',
    aliases: ['time-timelocker-server'],
    tags: ["timelocker server","timelock server","time lock server"],
    figmaNodeId: '1170:24731',
  },
  {
    name: 'time/timelocker-server-occupied',
    category: 'time',
    exportName: 'IconTimeTimelockerServerOccupied',
    aliases: ['time-timelocker-server-occupied'],
    tags: ["timelocker server occupied","server occupied","busy server"],
    figmaNodeId: '1278:41528',
  },
  {
    name: 'time/timer',
    category: 'time',
    exportName: 'IconTimeTimer',
    aliases: ['time-timer'],
    tags: ["timer","countdown","stopwatch"],
    figmaNodeId: '1243:23470',
  },
]
