/**
 * i18n type definitions
 */

export type Locale = 'en' | 'zh-CN' | 'zh-TW' | 'ja' | 'ko' | 'de' | 'fr' | 'es' | 'ru' | 'pt';

/**
 * Translation key type - represents all valid translation keys
 * This is a union of all possible dot-notation keys from the translation files
 */
export type TranslationKey =
  // Common UI elements
  | 'common.save'
  | 'common.cancel'
  | 'common.delete'
  | 'common.edit'
  | 'common.add'
  | 'common.remove'
  | 'common.clear'
  | 'common.clearAll'
  | 'common.loading'
  | 'common.error'
  | 'common.success'
  | 'common.warning'
  | 'common.confirm'
  | 'common.settings'
  | 'common.advanced'
  | 'common.enabled'
  | 'common.disabled'
  | 'common.platform'
  | 'common.refresh'
  | 'common.rewind'

  // Chat - Rewind
  | 'chat.rewind.confirmMessage'
  | 'chat.rewind.confirmButton'
  | 'chat.rewind.ariaLabel'
  | 'chat.rewind.notice'
  | 'chat.rewind.noticeSaveFailed'
  | 'chat.rewind.failed'
  | 'chat.rewind.cannot'
  | 'chat.rewind.unavailableStreaming'
  | 'chat.rewind.unavailableNoUuid'
  | 'chat.bangBash.placeholder'
  | 'chat.bangBash.commandPanel'
  | 'chat.bangBash.copyAriaLabel'
  | 'chat.bangBash.clearAriaLabel'
  | 'chat.bangBash.commandLabel'
  | 'chat.bangBash.statusLabel'
  | 'chat.bangBash.collapseOutput'
  | 'chat.bangBash.expandOutput'
  | 'chat.bangBash.running'
  | 'chat.bangBash.copyFailed'

  // Chat - Fork
  | 'chat.fork.ariaLabel'
  | 'chat.fork.chooseTarget'
  | 'chat.fork.targetNewTab'
  | 'chat.fork.targetCurrentTab'
  | 'chat.fork.maxTabsReached'
  | 'chat.fork.notice'
  | 'chat.fork.noticeCurrentTab'
  | 'chat.fork.failed'
  | 'chat.fork.unavailableStreaming'
  | 'chat.fork.unavailableNoUuid'
  | 'chat.fork.unavailableNoResponse'
  | 'chat.fork.errorMessageNotFound'
  | 'chat.fork.errorNoSession'
  | 'chat.fork.errorNoActiveTab'
  | 'chat.fork.commandNoMessages'
  | 'chat.fork.commandNoAssistantUuid'

  // Settings - Customization
  | 'settings.title'
  | 'settings.customization'
  | 'settings.userName.name'
  | 'settings.userName.desc'
  | 'settings.excludedTags.name'
  | 'settings.excludedTags.desc'
  | 'settings.mediaFolder.name'
  | 'settings.mediaFolder.desc'
  | 'settings.systemPrompt.name'
  | 'settings.systemPrompt.desc'
  | 'settings.autoTitle.name'
  | 'settings.autoTitle.desc'
  | 'settings.titleModel.name'
  | 'settings.titleModel.desc'
  | 'settings.titleModel.auto'
  | 'settings.navMappings.name'
  | 'settings.navMappings.desc'

  // Settings - Hotkeys
  | 'settings.hotkeys'
  | 'settings.inlineEditHotkey.name'
  | 'settings.inlineEditHotkey.descWithKey'
  | 'settings.inlineEditHotkey.descNoKey'
  | 'settings.inlineEditHotkey.btnChange'
  | 'settings.inlineEditHotkey.btnSet'
  | 'settings.openChatHotkey.name'
  | 'settings.openChatHotkey.descWithKey'
  | 'settings.openChatHotkey.descNoKey'
  | 'settings.openChatHotkey.btnChange'
  | 'settings.openChatHotkey.btnSet'
  | 'settings.newSessionHotkey.name'
  | 'settings.newSessionHotkey.descWithKey'
  | 'settings.newSessionHotkey.descNoKey'
  | 'settings.newSessionHotkey.btnChange'
  | 'settings.newSessionHotkey.btnSet'
  | 'settings.newTabHotkey.name'
  | 'settings.newTabHotkey.descWithKey'
  | 'settings.newTabHotkey.descNoKey'
  | 'settings.newTabHotkey.btnChange'
  | 'settings.newTabHotkey.btnSet'
  | 'settings.closeTabHotkey.name'
  | 'settings.closeTabHotkey.descWithKey'
  | 'settings.closeTabHotkey.descNoKey'
  | 'settings.closeTabHotkey.btnChange'
  | 'settings.closeTabHotkey.btnSet'

  // Settings - Commands and Skills
  | 'settings.slashCommands.name'
  | 'settings.slashCommands.desc'
  | 'settings.hiddenSlashCommands.name'
  | 'settings.hiddenSlashCommands.desc'
  | 'settings.hiddenSlashCommands.placeholder'

  // Settings - MCP Servers
  | 'settings.mcpServers.name'
  | 'settings.mcpServers.desc'

  // Settings - Plugins
  | 'settings.plugins.name'
  | 'settings.plugins.desc'

  // Settings - Subagents
  | 'settings.subagents.name'
  | 'settings.subagents.desc'
  | 'settings.subagents.noAgents'
  | 'settings.subagents.deleteConfirm'
  | 'settings.subagents.saveFailed'
  | 'settings.subagents.refreshFailed'
  | 'settings.subagents.deleteFailed'
  | 'settings.subagents.renameCleanupFailed'
  | 'settings.subagents.created'
  | 'settings.subagents.updated'
  | 'settings.subagents.deleted'
  | 'settings.subagents.duplicateName'
  | 'settings.subagents.descriptionRequired'
  | 'settings.subagents.promptRequired'
  | 'settings.subagents.modal.titleEdit'
  | 'settings.subagents.modal.titleAdd'
  | 'settings.subagents.modal.name'
  | 'settings.subagents.modal.nameDesc'
  | 'settings.subagents.modal.namePlaceholder'
  | 'settings.subagents.modal.description'
  | 'settings.subagents.modal.descriptionDesc'
  | 'settings.subagents.modal.descriptionPlaceholder'
  | 'settings.subagents.modal.advancedOptions'
  | 'settings.subagents.modal.model'
  | 'settings.subagents.modal.modelDesc'
  | 'settings.subagents.modal.tools'
  | 'settings.subagents.modal.toolsDesc'
  | 'settings.subagents.modal.disallowedTools'
  | 'settings.subagents.modal.disallowedToolsDesc'
  | 'settings.subagents.modal.skills'
  | 'settings.subagents.modal.skillsDesc'
  | 'settings.subagents.modal.prompt'
  | 'settings.subagents.modal.promptDesc'
  | 'settings.subagents.modal.promptPlaceholder'

  // Settings - Safety
  | 'settings.safety'
  | 'settings.loadUserSettings.name'
  | 'settings.loadUserSettings.desc'
  | 'settings.enableBlocklist.name'
  | 'settings.enableBlocklist.desc'
  | 'settings.allowExternalAccess.name'
  | 'settings.allowExternalAccess.desc'
  | 'settings.blockedCommands.name'
  | 'settings.blockedCommands.desc'
  | 'settings.blockedCommands.unixName'
  | 'settings.blockedCommands.unixDesc'
  | 'settings.exportPaths.name'
  | 'settings.exportPaths.desc'
  | 'settings.exportPaths.disabledDesc'

  // Settings - Environment
  | 'settings.environment'
  | 'settings.customVariables.name'
  | 'settings.customVariables.desc'
  | 'settings.envSnippets.name'
  | 'settings.envSnippets.addBtn'
  | 'settings.envSnippets.noSnippets'
  | 'settings.envSnippets.nameRequired'
  | 'settings.envSnippets.modal.titleEdit'
  | 'settings.envSnippets.modal.titleSave'
  | 'settings.envSnippets.modal.name'
  | 'settings.envSnippets.modal.namePlaceholder'
  | 'settings.envSnippets.modal.description'
  | 'settings.envSnippets.modal.descPlaceholder'
  | 'settings.envSnippets.modal.envVars'
  | 'settings.envSnippets.modal.envVarsPlaceholder'
  | 'settings.envSnippets.modal.save'
  | 'settings.envSnippets.modal.update'
  | 'settings.envSnippets.modal.cancel'

  // Settings - Custom Context Limits
  | 'settings.customContextLimits.name'
  | 'settings.customContextLimits.desc'
  | 'settings.customContextLimits.invalid'

  // Settings - Advanced
  | 'settings.advanced'
  | 'settings.enableOpus1M.name'
  | 'settings.enableOpus1M.desc'
  | 'settings.enableSonnet1M.name'
  | 'settings.enableSonnet1M.desc'
  | 'settings.enableChrome.name'
  | 'settings.enableChrome.desc'
  | 'settings.enableBangBash.name'
  | 'settings.enableBangBash.desc'
  | 'settings.enableBangBash.validation.noNode'
  | 'settings.maxTabs.name'
  | 'settings.maxTabs.desc'
  | 'settings.maxTabs.warning'
  | 'settings.tabBarPosition.name'
  | 'settings.tabBarPosition.desc'
  | 'settings.tabBarPosition.input'
  | 'settings.tabBarPosition.header'
  | 'settings.enableAutoScroll.name'
  | 'settings.enableAutoScroll.desc'
  | 'settings.openInMainTab.name'
  | 'settings.openInMainTab.desc'
  | 'settings.cliPath.name'
  | 'settings.cliPath.desc'
  | 'settings.cliPath.descWindows'
  | 'settings.cliPath.descUnix'
  | 'settings.cliPath.validation.notExist'
  | 'settings.cliPath.validation.isDirectory'

  // Settings - Language
  | 'settings.language.name'
  | 'settings.language.desc';
