export type TableSelectionState = 'All' | 'Partial' | 'None';

export const TIME_FORMAT_STRING = 'MMM d yyyy H:mm';

export const ICONS = {
  ALERT: 'al-ico-alert',
  CREATED: 'fa-plus',
  MINUS: 'fa-minus',
  CHART: 'al-ico-info-max',
  QUEUED: 'al-ico-manage-queue',
  ENQUEUE: 'al-ico-enqueue',
  DEQUEUE: 'al-ico-dequeue',
  IN_PROGRESS: 'fa-hourglass-half',
  STOPPED: 'al-ico-abort',
  RESUME: 'fa-hourglass-half',
  CLOSED: 'fa-circle-o',
  FAILED: 'fa-times',
  FALSE: 'fa-times',
  PUBLISHED: 'al-ico-publish',
  PUBLISHING: 'fa-spinner',
  TRUE: 'fa-check',
  ANNOTATION: 'fa-puzzle-piece',
  DATASET: 'fa-puzzle-piece',
  TASK: 'fa-briefcase',
  MODEL: 'fa-cube',
  SHOW: 'fa-eye',
  ARCHIVE: 'al-ico-archive',
  RESTORE: 'al-ico-restore',
  COMPARE: 'al-ico-compare',
  HIDE: 'fa-eye-slash',
  COMPLETED: 'fa-circle',
  ABORTED: 'fa-circle',
  UNKNOWN: 'fa-question-circle',
  TESTING: 'fa-balance-scale',
  IMPORT: 'fa-download',
  TRAINING: 'fa-cube',
  ANNOTATION_MANUAL: 'fa-edit',
  ADMIN: 'fa-cogs',
  DATASET_IMPORT: 'fa-download',
  WARNING: 'fa-exclamation-triangle',
  OUTPUT: 'fa-folder-open',
  EXECUTION: 'fa-terminal',
  LIST: 'al-ico-list-view',
  REMOVE: 'al-ico-trash',
  MOVE_TO: 'al-ico-move-to',
  ADD: 'fa-plus',
  TREE: 'fa-code-branch',
  TABLE: 'fa-table',
  SELECTED: 'fa-check-square-o',
  PROJECT: 'fa-list-alt',
  FOCUS: 'fa-crosshairs',
  LOG: 'fa-file-text-o',
  METRICS: 'fa-chart-area',
  TOKEN: 'fa-key',
  EDIT: 'fa-pencil-square-o',
  EDITABLE: 'fa-pencil',
  RESET: 'al-ico-reset',
  CLONE: 'al-ico-clone',
  EXTEND: 'al-ico-extend',
  DOWNLOAD: 'al-ico-download',
  WORKER: 'al-ico-workers',
  TAG: 'al-ico-tag',
  SHARE: 'al-ico-shared-item'
};

export type IconNames = keyof typeof ICONS;
export type ObjectKeysRecord<T extends object> = { [P in keyof T]: P };
export type IconsList = ObjectKeysRecord<typeof ICONS>;
