export enum IChalkType {
  success = 'green',
  info = 'blue',
  warn = 'yellow',
  error = 'red'
}

export enum ILogType {
  success = 'success',
  info = 'info',
  warn = 'warn',
  error = 'error'
}

export enum ICOREBuildInEvent {
  UPLOAD_PROGRESS = 'uploadProgress',
  FAILED = 'failed',
  BEFORE_TRANSFORM = 'beforeTransform',
  BEFORE_UPLOAD = 'beforeUpload',
  AFTER_UPLOAD = 'afterUpload',
  FINISHED = 'finished',
  INSTALL = 'install',
  UNINSTALL = 'uninstall',
  UPDATE = 'update',
  NOTIFICATION = 'notification',
  REMOVE = 'remove'
}

export enum IPicGoHelperType {
  afterUploadPlugins = 'afterUploadPlugins',
  beforeTransformPlugins = 'beforeTransformPlugins',
  beforeUploadPlugins = 'beforeUploadPlugins',
  uploader = 'uploader',
  transformer = 'transformer'
}

export enum IPasteStyle {
  MARKDOWN = 'markdown',
  HTML = 'HTML',
  URL = 'URL',
  UBB = 'UBB',
  CUSTOM = 'Custom'
}

export enum IWindowList {
  SETTING_WINDOW = 'SETTING_WINDOW',
  TRAY_WINDOW = 'TRAY_WINDOW',
  MINI_WINDOW = 'MINI_WINDOW',
  RENAME_WINDOW = 'RENAME_WINDOW',
  TOOLBOX_WINDOW = 'TOOLBOX_WINDOW',
  MANUAL_WINDOW = 'MANUAL_WINDOW'
}

export enum IRemoteNoticeActionType {
  OPEN_URL = 'OPEN_URL',
  SHOW_NOTICE = 'SHOW_NOTICE', // notification
  SHOW_DIALOG = 'SHOW_DIALOG', // dialog notice
  COMMON = 'COMMON',
  VOID = 'VOID', // do nothing
  SHOW_MESSAGE_BOX = 'SHOW_MESSAGE_BOX'
}

export enum IRemoteNoticeTriggerHook {
  APP_START = 'APP_START',
  SETTING_WINDOW_OPEN = 'SETTING_WINDOW_OPEN'
}

export enum IRemoteNoticeTriggerCount {
  ONCE = 'ONCE', // default
  ALWAYS = 'ALWAYS'
}

/**
 * renderer trigger action from main
 */

export enum IRPCType {
  INVOKE = 'INVOKE',
  SEND = 'SEND'
}

export enum IRPCActionType {
  // system rpc
  RELOAD_APP = 'RELOAD_APP',
  OPEN_URL = 'OPEN_URL',
  OPEN_FILE = 'OPEN_FILE',
  HIDE_DOCK = 'HIDE_DOCK',
  GET_LANGUAGE_LIST = 'GET_LANGUAGE_LIST',
  GET_CURRENT_LANGUAGE = 'GET_CURRENT_LANGUAGE',
  SET_CURRENT_LANGUAGE = 'SET_CURRENT_LANGUAGE',
  OPEN_WINDOW = 'OPEN_WINDOW',
  OPEN_MINI_WINDOW = 'OPEN_MINI_WINDOW',
  OPEN_MANUAL_WINDOW = 'OPEN_MANUAL_WINDOW',
  CLOSE_WINDOW = 'CLOSE_WINDOW',
  MINIMIZE_WINDOW = 'MINIMIZE_WINDOW',
  SHOW_MINI_PAGE_MENU = 'SHOW_MINI_PAGE_MENU',
  SHOW_MAIN_PAGE_MENU = 'SHOW_MAIN_PAGE_MENU',
  SHOW_UPLOAD_PAGE_MENU = 'SHOW_UPLOAD_PAGE_MENU',
  SHOW_SECOND_UPLOADER_MENU = 'SHOW_SECOND_UPLOADER_MENU',
  SHOW_PLUGIN_PAGE_MENU = 'SHOW_PLUGIN_PAGE_MENU',
  SET_MINI_WINDOW_POS = 'SET_MINI_WINDOW_POS',
  MINI_WINDOW_ON_TOP = 'MINI_WINDOW_ON_TOP',
  MAIN_WINDOW_ON_TOP = 'MAIN_WINDOW_ON_TOP',
  UPDATE_MINI_WINDOW_ICON = 'UPDATE_MINI_WINDOW_ICON',
  REFRESH_SETTING_WINDOW = 'REFRESH_SETTING_WINDOW',

  // picbed RPC
  PICBED_GET_PICBED_CONFIG = 'PICBED_GET_PICBED_CONFIG',
  PICBED_GET_CONFIG_LIST = 'PICBED_GET_CONFIG_LIST',
  PICBED_DELETE_CONFIG = 'PICBED_DELETE_CONFIG',
  UPLOADER_CHANGE_CURRENT = 'UPLOADER_CHANGE_CURRENT',
  UPLOADER_SELECT = 'UPLOADER_SELECT',
  UPLOADER_UPDATE_CONFIG = 'UPLOADER_UPDATE_CONFIG',
  UPLOADER_RESET_CONFIG = 'UPLOADER_RESET_CONFIG',

  // toolbox rpc
  TOOLBOX_CHECK = 'TOOLBOX_CHECK',
  TOOLBOX_CHECK_RES = 'TOOLBOX_CHECK_RES',
  TOOLBOX_CHECK_FIX = 'TOOLBOX_CHECK_FIX',

  // main app setting rpc
  PICLIST_GET_CONFIG = 'PICLIST_GET_CONFIG',
  PICLIST_GET_CONFIG_SYNC = 'PICLIST_GET_CONFIG_SYNC',
  PICLIST_SAVE_CONFIG = 'PICLIST_SAVE_CONFIG',
  PICLIST_OPEN_FILE = 'PICLIST_OPEN_FILE',
  PICLIST_OPEN_DIRECTORY = 'PICLIST_OPEN_DIRECTORY',
  PICLIST_AUTO_START = 'PICLIST_AUTO_START',

  // shortkey setting rpc
  SHORTKEY_UPDATE = 'SHORTKEY_UPDATE',
  SHORTKEY_BIND_OR_UNBIND = 'SHORTKEY_BIND_OR_UNBIND',
  SHORTKEY_TOGGLE_SHORTKEY_MODIFIED_MODE = 'SHORTKEY_TOGGLE_SHORTKEY_MODIFIED_MODE',

  // configuration setting rpc
  CONFIGURE_MIGRATE_FROM_PICGO = 'CONFIGURE_MIGRATE_FROM_PICGO',
  CONFIGURE_UPLOAD_COMMON_CONFIG = 'CONFIGURE_UPLOAD_COMMON_CONFIG',
  CONFIGURE_UPLOAD_MANAGE_CONFIG = 'CONFIGURE_UPLOAD_MANAGE_CONFIG',
  CONFIGURE_UPLOAD_ALL_CONFIG = 'CONFIGURE_UPLOAD_ALL_CONFIG',
  CONFIGURE_DOWNLOAD_COMMON_CONFIG = 'CONFIGURE_DOWNLOAD_COMMON_CONFIG',
  CONFIGURE_DOWNLOAD_MANAGE_CONFIG = 'CONFIGURE_DOWNLOAD_MANAGE_CONFIG',
  CONFIGURE_DOWNLOAD_ALL_CONFIG = 'CONFIGURE_DOWNLOAD_ALL_CONFIG',

  // advanced setting rpc
  ADVANCED_UPDATE_SERVER = 'ADVANCED_UPDATE_SERVER',
  ADVANCED_STOP_WEB_SERVER = 'ADVANCED_STOP_WEB_SERVER',
  ADVANCED_RESTART_WEB_SERVER = 'ADVANCED_RESTART_WEB_SERVER',

  // upload and main page rpc
  MAIN_GET_PICBED = 'MAIN_GET_PICBED',
  UPLOAD_CLIPBOARD_FILES_FROM_UPLOAD_PAGE = 'UPLOAD_CLIPBOARD_FILES_FROM_UPLOAD_PAGE',
  UPLOAD_CHOOSED_FILES = 'UPLOAD_CHOOSED_FILES',

  // gallery rpc
  GALLERY_PASTE_TEXT = 'GALLERY_PASTE_TEXT',
  GALLERY_REMOVE_FILES = 'GALLERY_REMOVE_FILES',
  GALLERY_GET_DB = 'GALLERY_GET_DB',
  GALLERY_GET_BY_ID_DB = 'GALLERY_GET_BY_ID_DB',
  GALLERY_UPDATE_BY_ID_DB = 'GALLERY_UPDATE_BY_ID_DB',
  GALLERY_REMOVE_BY_ID_DB = 'GALLERY_REMOVE_BY_ID_DB',
  GALLERY_INSERT_DB = 'GALLERY_INSERT_DB',
  GALLERY_INSERT_DB_BATCH = 'GALLERY_INSERT_DB_BATCH',
  GALLERY_LOG_DELETE_MSG = 'GALLERY_LOG_DELETE_MSG',
  GALLERY_DELETE_SFTP_FILE = 'GALLERY_DELETE_SFTP_FILE',
  GALLERY_DELETE_AWS_S3_FILE = 'GALLERY_DELETE_AWS_S3_FILE',
  GALLERY_DELETE_DOGE_FILE = 'GALLERY_DELETE_DOGE_FILE',
  GALLERY_DELETE_HUAWEI_OSS_FILE = 'GALLERY_DELETE_HUAWEI_OSS_FILE',

  // plugin rpc
  PLUGIN_GET_LIST = 'PLUGIN_GET_LIST',
  PLUGIN_INSTALL = 'PLUGIN_INSTALL',
  PLUGIN_IMPORT_LOCAL = 'PLUGIN_IMPORT_LOCAL',
  PLUGIN_UPDATE_ALL = 'PLUGIN_UPDATE_ALL',

  // tray rpc
  TRAY_SET_TOOL_TIP = 'TRAY_SET_TOOL_TIP',
  TRAY_GET_SHORT_URL = 'TRAY_GET_SHORT_URL',
  TRAY_UPLOAD_CLIPBOARD_FILES = 'TRAY_UPLOAD_CLIPBOARD_FILES',

  // manage rpc
  MANAGE_GET_CONFIG = 'MANAGE_GET_CONFIG',
  MANAGE_SAVE_CONFIG = 'MANAGE_SAVE_CONFIG',
  MANAGE_REMOVE_CONFIG = 'MANAGE_REMOVE_CONFIG',
  MANAGE_GET_BUCKET_LIST = 'MANAGE_GET_BUCKET_LIST',
  MANAGE_GET_BUCKET_LIST_BACKSTAGE = 'MANAGE_GET_BUCKET_LIST_BACKSTAGE',
  MANAGE_GET_BUCKET_LIST_RECURSIVELY = 'MANAGE_GET_BUCKET_LIST_RECURSIVELY',
  MANAGE_CREATE_BUCKET = 'MANAGE_CREATE_BUCKET',
  MANAGE_GET_BUCKET_FILE_LIST = 'MANAGE_GET_BUCKET_FILE_LIST',
  MANAGE_GET_BUCKET_DOMAIN = 'MANAGE_GET_BUCKET_DOMAIN',
  MANAGE_SET_BUCKET_ACL_POLICY = 'MANAGE_SET_BUCKET_ACL_POLICY',
  MANAGE_RENAME_BUCKET_FILE = 'MANAGE_RENAME_BUCKET_FILE',
  MANAGE_DELETE_BUCKET_FILE = 'MANAGE_DELETE_BUCKET_FILE',
  MANAGE_DELETE_BUCKET_FOLDER = 'MANAGE_DELETE_BUCKET_FOLDER',
  MANAGE_GET_PRE_SIGNED_URL = 'MANAGE_GET_PRE_SIGNED_URL',
  MANAGE_UPLOAD_BUCKET_FILE = 'MANAGE_UPLOAD_BUCKET_FILE',
  MANAGE_DOWNLOAD_BUCKET_FILE = 'MANAGE_DOWNLOAD_BUCKET_FILE',
  MANAGE_CREATE_BUCKET_FOLDER = 'MANAGE_CREATE_BUCKET_FOLDER',
  MANAGE_OPEN_FILE_SELECT_DIALOG = 'MANAGE_OPEN_FILE_SELECT_DIALOG',
  MANAGE_GET_UPLOAD_TASK_LIST = 'MANAGE_GET_UPLOAD_TASK_LIST',
  MANAGE_GET_DOWNLOAD_TASK_LIST = 'MANAGE_GET_DOWNLOAD_TASK_LIST',
  MANAGE_DELETE_UPLOADED_TASK = 'MANAGE_DELETE_UPLOADED_TASK',
  MANAGE_DELETE_ALL_UPLOADED_TASK = 'MANAGE_DELETE_ALL_UPLOADED_TASK',
  MANAGE_DELETE_DOWNLOADED_TASK = 'MANAGE_DELETE_DOWNLOADED_TASK',
  MANAGE_DELETE_ALL_DOWNLOADED_TASK = 'MANAGE_DELETE_ALL_DOWNLOADED_TASK',
  MANAGE_SELECT_DOWNLOAD_FOLDER = 'MANAGE_SELECT_DOWNLOAD_FOLDER',
  MANAGE_GET_DEFAULT_DOWNLOAD_FOLDER = 'MANAGE_GET_DEFAULT_DOWNLOAD_FOLDER',
  MANAGE_OPEN_DOWNLOADED_FOLDER = 'MANAGE_OPEN_DOWNLOADED_FOLDER',
  MANAGE_OPEN_LOCAL_FILE = 'MANAGE_OPEN_LOCAL_FILE',
  MANAGE_DOWNLOAD_FILE_FROM_URL = 'MANAGE_DOWNLOAD_FILE_FROM_URL',
  MANAGE_CONVERT_PATH_TO_BASE64 = 'MANAGE_CONVERT_PATH_TO_BASE64'
}

export enum IToolboxItemType {
  IS_CONFIG_FILE_BROKEN = 'IS_CONFIG_FILE_BROKEN',
  IS_GALLERY_FILE_BROKEN = 'IS_GALLERY_FILE_BROKEN',
  HAS_PROBLEM_WITH_CLIPBOARD_PIC_UPLOAD = 'HAS_PROBLEM_WITH_CLIPBOARD_PIC_UPLOAD',
  HAS_PROBLEM_WITH_PROXY = 'HAS_PROBLEM_WITH_PROXY'
}

export enum IToolboxItemCheckStatus {
  INIT = 'init',
  LOADING = 'loading',
  SUCCESS = 'success',
  ERROR = 'error'
}

// piclist setting

export enum ISartMode {
  QUIET = 'quiet',
  MINI = 'mini',
  MAIN = 'main',
  NO_TRAY = 'no-tray'
}

export enum II18nLanguage {
  ZH_CN = 'zh-CN',
  ZH_TW = 'zh-TW',
  EN = 'en'
}

export enum IShortUrlServer {
  C1N = 'c1n',
  YOURLS = 'yourls',
  CFWORKER = 'cf_worker',
  SINK = 'sink'
}

export enum commonTaskStatus {
  queuing = 'queuing',
  failed = 'failed',
  canceled = 'canceled',
  paused = 'paused'
}

// manage task status

export enum uploadTaskSpecialStatus {
  uploading = 'uploading',
  uploaded = 'uploaded'
}

export enum downloadTaskSpecialStatus {
  downloading = 'downloading',
  downloaded = 'downloaded'
}
