import type { Direction } from '@/enums/direction.enum';
import type { Locale } from '@/enums/locale.enum';

export type TranslationDictionary = {
  common: {
    save: string;
    cancel: string;
    delete: string;
    edit: string;
    create: string;
    search: string;
    filter: string;
    loading: string;
    noResults: string;
    confirm: string;
    back: string;
    next: string;
    previous: string;
    close: string;
    retry: string;
    error: string;
    success: string;
    warning: string;
    info: string;
    healthy: string;
    degraded: string;
    unhealthy: string;
    up: string;
    down: string;
    responseTime: string;
    unknown: string;
    operational: string;
    notAvailable: string;
    yes: string;
    no: string;
    never: string;
    accessDenied: string;
    brandName: string;
    brandVersion: string;
    select: string;
    download: string;
    noDataAvailable: string;
    showingPage: string;
  };
  auth: {
    login: string;
    logout: string;
    email: string;
    password: string;
    loginTitle: string;
    loginSubtitle: string;
    loginButton: string;
    logoutButton: string;
    sessionExpired: string;
    invalidCredentials: string;
    welcomeTitle: string;
    welcomeSubtitle: string;
    passwordPlaceholder: string;
    signingIn: string;
    loginFailed: string;
    tagline: string;
    authenticating: string;
    emailPlaceholder: string;
  };
  nav: {
    dashboard: string;
    chat: string;
    compareModels: string;
    consensusMode: string;
    escalationChain: string;
    repairLab: string;
    decomposeLab: string;
    bestOfNLab: string;
    verifierLab: string;
    pipelineLab: string;
    costEnsemble: string;
    rolePackLab: string;
    connectors: string;
    models: string;
    modelCatalog: string;
    modelLocalFrontier: string;
    localModels: string;
    routing: string;
    replayLab: string;
    recoveryLab: string;
    adaptiveInsights: string;
    memory: string;
    context: string;
    files: string;
    observability: string;
    audits: string;
    logs: string;
    admin: string;
    settings: string;
    workspace: string;
    workspaceActions: string;
    workspaceApprovals: string;
    workspaceSyncHealth: string;
    agent: string;
    agentTerminal: string;
    agentRepos: string;
    agentCapabilities: string;
    agentActivity: string;
    agentRecipes: string;
    agentMarketplace: string;
    agentActivityMemory: string;
    discovery: string;
    workspaceProviders: string;
    workspaceAppConfigs: string;
    workspaceGmail: string;
    workspaceJira: string;
    workspaceSourceControl: string;
    workspaceSlack: string;
    workspaceDocs: string;
    workspaceConfluence: string;
    workspaceFigma: string;
    workspaceWorkflows: string;
    researchProviders: string;
    researchRuns: string;
    research: string;
    workspaceInbox: string;
    workspaceSemanticSearch: string;
    workspaceDigest: string;
    workspaceAutomationPreferences: string;
    workspaceEmailSignatures: string;
    workspaceEmailTemplates: string;
    workspaceImplHandoffs: string;
    adminAiActionPolicies: string;
    adminSuggestionRules: string;
    adminWebhookDeliveries: string;
  };
  chat: {
    newThread: string;
    threads: string;
    searchThreads: string;
    noThreads: string;
    noThreadsDesc: string;
    sendMessage: string;
    typeMessage: string;
    deleteThread: string;
    deleteThreadConfirm: string;
    threadCreated: string;
    threadCreateFailed: string;
    threadDeleted: string;
    threadDeleteFailed: string;
    threadUpdateFailed: string;
    messageSendFailed: string;
    feedbackFailed: string;
    regenerateFailed: string;
    aiThinking: string;
    fallbackRetrying: string;
    providerFailed: string;
    tryingProvider: string;
    allProvidersFailed: string;
    imageGeneration: string;
    generatedImage: string;
    downloadImage: string;
    fileGeneration: string;
    generatingFile: string;
    fileGenerationFailed: string;
    downloadFile: string;
    convertingFile: string;
    providerModel: string;
    pinThread: string;
    unpinThread: string;
    archiveThread: string;
    unarchiveThread: string;
    threadPinned: string;
    threadUnpinned: string;
    threadArchived: string;
    threadUnarchived: string;
    pinFailed: string;
    archiveFailed: string;
    showArchived: string;
    hideArchived: string;
    provenance: string;
    provenanceProvider: string;
    provenanceModel: string;
    provenanceLatency: string;
    provenanceInputTokens: string;
    provenanceOutputTokens: string;
    provenanceEstimatedCost: string;
    provenanceRoutingMode: string;
    provenanceFallbackUsed: string;
    provenanceYes: string;
    provenanceNo: string;
    globalSearch: string;
    globalSearchPlaceholder: string;
    globalSearchNoResults: string;
    systemPrompt: string;
    systemPromptPlaceholder: string;
    temperature: string;
    temperatureDescription: string;
    maxTokens: string;
    maxTokensDescription: string;
    threadSettings: string;
    preferredModel: string;
    preferredModelDescription: string;
    settingsSaved: string;
    helpful: string;
    notHelpful: string;
    feedbackSaved: string;
    attachFiles: string;
    noFiles: string;
    selectedFiles: string;
    contextPacks: string;
    contextPacksDescription: string;
    noContextPacks: string;
    reRouted: string;
    reRoutedFrom: string;
    weakResponse: string;
    qualityScore: string;
    judgeReferee: string;
    judgeRefereeDescription: string;
    judgeVerified: string;
    judgeRevised: string;
    judgeEscalated: string;
    judgeCriticFeedback: string;
    judgeReasoning: string;
    judgeEvaluating: string;
    judgeModelLabel: string;
    judgeModelAuto: string;
    judgeModelDescription: string;
    judgeOpenReview: string;
    judgeReviewTitle: string;
    judgeReviewDescription: string;
    judgeDecisionLabel: string;
    judgeConfidenceLabel: string;
    judgeSummary: string;
    judgeResponse: string;
    judgeOriginalAnswer: string;
    judgeRevisedAnswer: string;
    judgeEscalatedAnswer: string;
    judgeExecutionModel: string;
    judgeJudgeModel: string;
    judgeCriticModel: string;
    judgeCriticScore: string;
    judgeJudgeLatency: string;
    judgeTotalLatency: string;
    judgeRecommendedChanges: string;
    judgeNoCriticFeedback: string;
    judgeResponseTypeSummary: string;
    judgeResponseTypeRevisedAnswer: string;
    judgeResponseTypeEscalatedAnswer: string;
    judgeResponseTypeVerificationNote: string;
    qualityThreshold: string;
    qualityThresholdDescription: string;
    maxReRouteAttempts: string;
    maxReRouteAttemptsDescription: string;
    reRouteReasonShort: string;
    reRouteReasonRefusal: string;
    reRouteReasonRepetition: string;
    reRouteReasonEcho: string;
    reRouteReasonLowWords: string;
    backToThreads: string;
    loadingThread: string;
    selectOrStartTitle: string;
    selectOrStartDesc: string;
    untitled: string;
    attachedFile: string;
    beginningOfConversation: string;
    composerPlaceholder: string;
    currentAiProgress: string;
    fileGenerationCancelled: string;
    fileGenerationFailedRetry: string;
    generationCancelled: string;
    imageGenerationFailedRetry: string;
    judge: string;
    live: string;
    loadingImage: string;
    loadingMessages: string;
    loadingMoreThreads: string;
    loadingOlderMessages: string;
    loadingThreads: string;
    manyMemories: string;
    modelThinking: string;
    noMatchingThreads: string;
    noMessagesYet: string;
    noVisibleAnswer: string;
    oneMemory: string;
    open: string;
    preparingDownload: string;
    regenerate: string;
    searching: string;
    threadActions: string;
    toggleProvenance: string;
    tryAnotherModel: string;
    tryingFallback: string;
    verifyingWith: string;
    visibleAiProgress: string;
    // Integration V2 — thread-settings toggles
    useMemoryLabel: string;
    useMemoryDescription: string;
    useContextLabel: string;
    useContextDescription: string;
  };
  receipt: {
    openLabel: string;
    contextUsed: string;
    dialogTitle: string;
    dialogDescription: string;
    loading: string;
    notAvailable: string;
    memoriesCount: string;
    packItemsCount: string;
    tokenBudget: string;
    memoriesHeading: string;
    packItemsHeading: string;
    warningsHeading: string;
    scoreLabel: string;
    pinnedBadge: string;
    redactedPlaceholder: string;
  };
  preview: {
    openLabel: string;
    dialogTitle: string;
    dialogDescription: string;
    loading: string;
    failed: string;
    empty: string;
    memoryCount: string;
    packCount: string;
    tokenBudget: string;
    memoriesHeading: string;
    packItemsHeading: string;
    redactedPlaceholder: string;
  };
  connectors: {
    title: string;
    description: string;
    createConnector: string;
    editConnector: string;
    deleteConnector: string;
    testConnection: string;
    testingConnection: string;
    syncModels: string;
    name: string;
    nameHelp: string;
    provider: string;
    providerHelp: string;
    authType: string;
    authTypeHelp: string;
    apiKey: string;
    apiKeyHelp: string;
    baseUrl: string;
    baseUrlHelp: string;
    region: string;
    regionHelp: string;
    status: string;
    healthy: string;
    degraded: string;
    error: string;
    noConnectors: string;
    noConnectorsDesc: string;
    connectorCreated: string;
    connectorCreateFailed: string;
    connectorUpdated: string;
    connectorUpdateFailed: string;
    connectorDeleted: string;
    connectorDeleteFailed: string;
    testSuccessful: string;
    testFailed: string;
    modelsSynced: string;
    syncFailed: string;
    testBeforeCreate: string;
    loadingConnectors: string;
    loadingConnector: string;
    addConnector: string;
    loadFailed: string;
    connectorDetail: string;
    connectorNotFound: string;
    backToConnectors: string;
    syncing: string;
    enabled: string;
    disabled: string;
    configuration: string;
    healthHistory: string;
    healthHistoryDesc: string;
    models: string;
    oneModel: string;
    manyModels: string;
    updatedAt: string;
    addConnectorDesc: string;
    apiKeyPlaceholder: string;
    apiKeyPlaceholderEdit: string;
    baseUrlOptional: string;
    baseUrlPlaceholder: string;
    defaultLabel: string;
    editConnectorDesc: string;
    namePlaceholder: string;
    regionPlaceholder: string;
    saveFirstThenTest: string;
    selectProvider: string;
  };
  memory: {
    title: string;
    description: string;
    createMemory: string;
    editMemory: string;
    deleteMemory: string;
    type: string;
    content: string;
    enabled: string;
    disabled: string;
    noMemories: string;
    noMemoriesDesc: string;
    memoryCreated: string;
    memoryCreateFailed: string;
    memoryUpdated: string;
    memoryUpdateFailed: string;
    memoryDeleted: string;
    memoryDeleteFailed: string;
    memoryToggled: string;
    memoryToggleFailed: string;
    loadFailed: string;
    loadingMemories: string;
    addMemory: string;
    contentPlaceholder: string;
    createMemoryDesc: string;
    editMemoryDesc: string;
    source: string;
    typeSummary: string;
    typeFact: string;
    typePreference: string;
    typeInstruction: string;
    filterAllTypes: string;
    // === Memory V2 ===
    tabSaved: string;
    tabSuggestions: string;
    tabAudit: string;
    searchPlaceholder: string;
    filterAllScopes: string;
    filterAllSources: string;
    filterAllSensitivities: string;
    scopeUser: string;
    scopeThread: string;
    scopeWorkspace: string;
    scopeProject: string;
    sourceUserManual: string;
    sourceAiExtracted: string;
    sourceAutomation: string;
    sourceImported: string;
    sensitivityNormal: string;
    sensitivitySensitive: string;
    sensitivityRedacted: string;
    loadingSuggestions: string;
    loadingAudit: string;
    noSuggestions: string;
    noAudit: string;
    auditNoMemoryId: string;
    approveSuggestion: string;
    rejectSuggestion: string;
    rejectAndSuppress: string;
    suggestionConfidence: string;
    suggestionReason: string;
  };
  files: {
    title: string;
    description: string;
    uploadFile: string;
    deleteFile: string;
    dragDrop: string;
    maxSize: string;
    noFiles: string;
    noFilesDesc: string;
    fileUploaded: string;
    fileUploadFailed: string;
    fileDeleted: string;
    fileDeleteFailed: string;
    uploadFailed: string;
    loadFailed: string;
    loadingFiles: string;
    allTypesAccepted: string;
    chunkIndex: string;
    chunksTitle: string;
    dropFileHere: string;
    dropOrClick: string;
    fileFallback: string;
    noChunks: string;
    uploading: string;
    uploadNewFile: string;
    viewChunks: string;
    statusPending: string;
    statusProcessing: string;
    statusCompleted: string;
    statusFailed: string;
  };
  context: {
    title: string;
    description: string;
    createPack: string;
    addItem: string;
    name: string;
    scope: string;
    noContextPacks: string;
    noContextPacksDesc: string;
    packCreated: string;
    packCreateFailed: string;
    packUpdated: string;
    packUpdateFailed: string;
    packDeleted: string;
    packDeleteFailed: string;
    itemAdded: string;
    itemAddFailed: string;
    itemUpdated: string;
    itemUpdateFailed: string;
    itemRemoved: string;
    itemRemoveFailed: string;
    loadFailed: string;
    contextPack: string;
    packDetailsDesc: string;
    backToPacks: string;
    deletePack: string;
    deleting: string;
    loadingPackDetails: string;
    noItems: string;
    noItemsDesc: string;
    loadingContextPacks: string;
    addItemDesc: string;
    adding: string;
    content: string;
    contentPlaceholder: string;
    fileId: string;
    fileIdPlaceholder: string;
    itemType: string;
    selectType: string;
    createPackDesc: string;
    creating: string;
    descriptionOptional: string;
    descriptionPlaceholder: string;
    namePlaceholder: string;
    scopeOptional: string;
    scopePlaceholder: string;
    typeNote: string;
    typeInstruction: string;
    typeFileReference: string;
  };
  routing: {
    title: string;
    description: string;
    createPolicy: string;
    editPolicy: string;
    deletePolicy: string;
    name: string;
    mode: string;
    priority: string;
    active: string;
    noPolicies: string;
    noPoliciesDesc: string;
    policyCreated: string;
    policyCreateFailed: string;
    policyUpdated: string;
    policyUpdateFailed: string;
    policyDeleted: string;
    policyDeleteFailed: string;
    status: string;
    inactive: string;
    activate: string;
    deactivate: string;
    loadFailed: string;
    defaultRoutingMode: string;
    defaultRoutingModeDesc: string;
    defaultMode: string;
    fallbackSettings: string;
    fallbackSettingsDesc: string;
    maxRetries: string;
    timeoutMs: string;
    loadingPolicies: string;
    noPoliciesConfigured: string;
    complexityLabel: string;
    complexitySimple: string;
    complexityMedium: string;
    complexityComplex: string;
    complexityExpert: string;
    routingExplanation: string;
    explanationSummary: string;
    explanationFactors: string;
    routingDurationMs: string;
    modalityLabel: string;
    modalityText: string;
    modalityCode: string;
    modalityImageInput: string;
    modalityImageOutput: string;
    modalityAudioInput: string;
    modalityVideoInput: string;
    modalityPdfInput: string;
    modalityWebSearch: string;
    modalityToolCalling: string;
    modalityStructuredOutput: string;
    modalityOcr: string;
    modalityReasoning: string;
    namePlaceholder: string;
    selectModePlaceholder: string;
    editPolicyDesc: string;
    createPolicyDesc: string;
    weightsJsonLabel: string;
    weightsJsonPlaceholder: string;
    weightsJsonHelp: string;
    weightsJsonError: {
      invalidJson: string;
      notAnObject: string;
      missingDimension: string;
      sumNotOne: string;
    };
    models: {
      title: string;
      description: string;
      updateSucceeded: string;
      updateFailed: string;
      overrideCleared: string;
      overrideClearFailed: string;
      softDeleteSucceeded: string;
      softDeleteFailed: string;
      columnProvider: string;
      columnModelKey: string;
      columnLifecycle: string;
      columnQuality: string;
      columnCost: string;
      columnLatency: string;
      filterByProvider: string;
      filterByLifecycle: string;
    };
  };
  models: {
    title: string;
    description: string;
    localTitle: string;
    localDescription: string;
    pullModel: string;
    assignRole: string;
    noModels: string;
    noModelsDesc: string;
    modelPullStarted: string;
    modelPullFailed: string;
    roleAssigned: string;
    roleAssignFailed: string;
    loadFailed: string;
    loadingModels: string;
    allProviders: string;
    allLifecycle: string;
    noModelsMatch: string;
    localLoadFailed: string;
    runtimeHealth: string;
    runtimeHealthDesc: string;
    pullModelDesc: string;
    modelName: string;
    runtime: string;
    pulling: string;
    pull: string;
    installedModels: string;
    loadingLocalModels: string;
    noLocalModels: string;
    noLocalModelsDesc: string;
    colModel: string;
    colRuntime: string;
    colSize: string;
    colFamily: string;
    colParameters: string;
    colRoles: string;
    noneRole: string;
    modelNamePlaceholder: string;
    capabilities: string;
    context: string;
    lifecycle: string;
    noSyncedModels: string;
    streaming: string;
    tools: string;
    vision: string;
  };
  observability: {
    title: string;
    description: string;
    totalRequests: string;
    totalCost: string;
    avgLatency: string;
    activeModels: string;
    clientLogs: string;
    serverLogs: string;
    auditTrail: string;
    loadingData: string;
    failedToLoad: string;
    failedToLoadDesc: string;
    noDataYet: string;
    noDataDesc: string;
    fullDescription: string;
    totalRequestsLabel: string;
    acrossProviders: string;
    estimatedCost: string;
    estimatedCostLabel: string;
    recentFailures: string;
    highCriticalSeverity: string;
    providerUsage: string;
    modelUsage: string;
    latencyBreakdown: string;
    costSummary: string;
    avg: string;
    p50Median: string;
    p95: string;
    totalTokens: string;
    requests: string;
    tokens: string;
    noData: string;
  };
  audits: {
    title: string;
    description: string;
    action: string;
    severity: string;
    entity: string;
    timestamp: string;
    noAudits: string;
    noAuditsDesc: string;
    actor: string;
    details: string;
    loadingAudits: string;
    loadFailed: string;
    loadFailedDesc: string;
    noMatchingAudits: string;
    allActions: string;
    allSeverities: string;
    searchPlaceholder: string;
    ipAddress: string;
  };
  admin: {
    title: string;
    description: string;
    users: string;
    createUser: string;
    changeRole: string;
    deactivate: string;
    reactivate: string;
    noUsers: string;
    checkingServices: string;
    healthUnreachable: string;
    loadingUsers: string;
    loadUsersFailed: string;
    loadUsersFailedDesc: string;
    userRoleUpdated: string;
    userRoleUpdateFailed: string;
    userDeactivated: string;
    userDeactivateFailed: string;
    userStats: string;
    userStatsDesc: string;
    totalUsers: string;
    activeUsers: string;
    platformHealth: string;
    systemStatusOverview: string;
    userManagement: string;
    colUsername: string;
    colEmail: string;
    colRole: string;
    colStatus: string;
    colJoined: string;
    colActions: string;
    roleAdmin: string;
    roleOperator: string;
    roleViewer: string;
  };
  settings: {
    title: string;
    description: string;
    profile: string;
    profileDescription: string;
    username: string;
    email: string;
    emailReadOnly: string;
    role: string;
    selectLanguage: string;
    preferences: string;
    language: string;
    languageDescription: string;
    appearance: string;
    appearanceDescription: string;
    system: string;
    light: string;
    dark: string;
    theme: string;
    changePassword: string;
    currentPassword: string;
    newPassword: string;
    confirmPassword: string;
    passwordChanged: string;
    passwordChangeFailed: string;
    passwordRequirements: string;
    preferencesUpdated: string;
    preferencesUpdateFailed: string;
    devices: {
      title: string;
      description: string;
      emptyTitle: string;
      emptyBody: string;
      revoke: string;
      rename: string;
      scopesHeading: string;
      revokedBanner: string;
    };
    langEnglish: string;
    langArabic: string;
    langFrench: string;
    langItalian: string;
    langGerman: string;
    langSpanish: string;
    langRussian: string;
    langPortuguese: string;
    langHindi: string;
    appearanceSystem: string;
    appearanceLight: string;
    appearanceDark: string;
  };
  dashboard: {
    title: string;
    description: string;
    quickActions: string;
    recentActivity: string;
    totalThreads: string;
    activeConnectors: string;
    localModels: string;
    systemHealth: string;
    startNewChat: string;
    addConnector: string;
    configureRouting: string;
    serviceStatus: string;
    checkingHealth: string;
    healthUnreachable: string;
    servicesOperational: string;
    responseTimeMs: string;
    unreachable: string;
    newChatLabel: string;
    newChatDesc: string;
    manageConnectorsLabel: string;
    manageConnectorsDesc: string;
    routingSettingsLabel: string;
    routingSettingsDesc: string;
  };
  catalog: {
    title: string;
    description: string;
    searchPlaceholder: string;
    allCategories: string;
    coding: string;
    fileGeneration: string;
    imageGeneration: string;
    routing: string;
    reasoning: string;
    thinking: string;
    download: string;
    downloading: string;
    installed: string;
    failed: string;
    unavailable: string;
    cloudOnly: string;
    cancel: string;
    recommended: string;
    noModels: string;
    activeDownloads: string;
    parameterCount: string;
    modelSize: string;
    capabilities: string;
    models: string;
    scrollForMore: string;
    allLoaded: string;
    searchBrowserHelpers: string;
    searchBrowserScoreLabel: string;
    searchBrowserScoreTooltip: string;
    cancelDownloadFailed: string;
    downloadCancelled: string;
    downloadStarted: string;
    downloadStartFailed: string;
    modelRemoved: string;
    modelRemoveFailed: string;
  };
  replay: {
    title: string;
    description: string;
    runReplay: string;
    running: string;
    totalReplayed: string;
    changed: string;
    unchanged: string;
    oldRoute: string;
    newRoute: string;
    improvement: string;
    noResults: string;
    confidenceOld: string;
    confidenceNew: string;
    replayComplete: string;
    replayFailed: string;
    saveRun: string;
    runName: string;
    runNamePlaceholder: string;
    threadIdFilter: string;
    threadIdPlaceholder: string;
    startDate: string;
    endDate: string;
    suspicious: string;
    avgImprovement: string;
    needsReview: string;
    noSuspiciousCases: string;
    noSuspiciousCasesDesc: string;
    confirmedRegression: string;
    markConfirmedRegression: string;
    caseReviewed: string;
    caseReviewFailed: string;
    copyBundle: string;
    bundleCopied: string;
    exportFailed: string;
    runsHistory: string;
    noRunsHistory: string;
    noRunsHistoryDesc: string;
    runResults: string;
    correct_improvement: string;
    bad_regression: string;
    cost_win: string;
    quality_win: string;
    uncertain: string;
    badRegression: string;
    noOriginalContent: string;
    promoteCase: string;
    promoted: string;
    promoteFailed: string;
    compareRuns: string;
    compareRunsTitle: string;
    compareRunsDesc: string;
    selectRunToCompare: string;
    runA: string;
    runB: string;
    improved: string;
    regressed: string;
    suspiciousReasons: {
      empty_message_content: string;
      large_confidence_drop: string;
      large_cost_increase: string;
      route_changed_with_negative_improvement: string;
    };
  };
  compare: {
    title: string;
    description: string;
    selectModels: string;
    minModels: string;
    maxModels: string;
    sendPrompt: string;
    comparing: string;
    compareFailed: string;
    results: string;
    fastest: string;
    completed: string;
    failed: string;
    latency: string;
    tokens: string;
    noResults: string;
    modelCount: string;
    expand: string;
    bestResponse: string;
    viewInThread: string;
    totalTokens: string;
    avgLatencyLabel: string;
    completedCount: string;
    failedCount: string;
    timeoutCount: string;
    modelsCompared: string;
    summaryTitle: string;
    showMore: string;
    showLess: string;
    timeout: string;
    noContent: string;
    noJudge: string;
    judgeAwaiting: string;
    judgeSkipped: string;
    judgeFailed: string;
    judgeUnavailable: string;
    judgeVerified: string;
    judgeRevised: string;
    judgeEscalated: string;
    modelsProcessing: string;
    processingMessage: string;
  };
  consensus: {
    title: string;
    description: string;
    selectModels: string;
    minModels: string;
    maxModels: string;
    sendPrompt: string;
    running: string;
    sendFailed: string;
    synthesizing: string;
    synthesisReady: string;
    synthesisTitle: string;
    agreementScore: string;
    confidenceLevel: string;
    agreements: string;
    disagreements: string;
    contradictions: string;
    synthesisRationale: string;
    modelBreakdown: string;
    completed: string;
    failed: string;
    timeout: string;
    contentLength: string;
    noResults: string;
    viewInThread: string;
    high: string;
    medium: string;
    low: string;
    modelsSelected: string;
    synthesisRationaleLabel: string;
  };
  escalation: {
    title: string;
    description: string;
    chainBuilder: string;
    addModel: string;
    removeModel: string;
    moveUp: string;
    moveDown: string;
    minSteps: string;
    maxSteps: string;
    sendPrompt: string;
    running: string;
    sendFailed: string;
    synthesizing: string;
    synthesisReady: string;
    resultTitle: string;
    stepUsed: string;
    totalSteps: string;
    escalated: string;
    notEscalated: string;
    status: string;
    statusSingleStep: string;
    statusResolved: string;
    statusExhausted: string;
    qualityScore: string;
    latency: string;
    step: string;
    passed: string;
    failed: string;
    finalModel: string;
    noResults: string;
    viewInThread: string;
    stepsTimeline: string;
    finalAnswer: string;
  };
  repair: {
    title: string;
    description: string;
    contentLabel: string;
    contentPlaceholder: string;
    repairTypes: string;
    schemaLabel: string;
    schemaDesc: string;
    formatLabel: string;
    formatDesc: string;
    completenessLabel: string;
    completenessDesc: string;
    factualityLabel: string;
    factualityDesc: string;
    sendPrompt: string;
    running: string;
    sendFailed: string;
    synthesizing: string;
    resultTitle: string;
    noResults: string;
    viewInThread: string;
    finalAnswer: string;
    provider: string;
    model: string;
  };
  decompose: {
    title: string;
    description: string;
    contentLabel: string;
    contentPlaceholder: string;
    maxSubTasks: string;
    sendPrompt: string;
    running: string;
    synthesizing: string;
    resultTitle: string;
    viewInThread: string;
    subTasksHeader: string;
    subTaskResult: string;
    category: string;
    model: string;
    latencyMs: string;
    noResults: string;
    sendFailed: string;
  };
  bestOfN: {
    title: string;
    description: string;
    contentLabel: string;
    contentPlaceholder: string;
    nCandidates: string;
    sendPrompt: string;
    running: string;
    synthesizing: string;
    resultTitle: string;
    viewInThread: string;
    candidatesHeader: string;
    rank: string;
    score: string;
    model: string;
    latency: string;
    noResults: string;
    sendFailed: string;
  };
  recovery: {
    title: string;
    description: string;
    totalDecisions: string;
    totalFallbacks: string;
    fallbackRate: string;
    providerTable: string;
    provider: string;
    fallbackCount: string;
    rate: string;
    recentFallbacks: string;
    originalProvider: string;
    originalModel: string;
    fallbackProvider: string;
    fallbackModel: string;
    mode: string;
    time: string;
    noFallbacks: string;
    noData: string;
    loading: string;
    error: string;
  };
  verify: {
    title: string;
    description: string;
    contentLabel: string;
    contentPlaceholder: string;
    maxRevisionsLabel: string;
    sendPrompt: string;
    running: string;
    synthesizing: string;
    noResults: string;
    sendFailed: string;
    verified: string;
    verifierScore: string;
    revisions: string;
    issues: string;
    viewInThread: string;
  };
  adaptiveLearning: {
    title: string;
    description: string;
    loading: string;
    error: string;
    windowDays: string;
    days: string;
    totalDecisions: string;
    avgConfidence: string;
    topReasonTags: string;
    providerTable: string;
    modeBreakdown: string;
    noData: string;
    provider: string;
    fallbackRate: string;
    totalCalls: string;
    topModes: string;
    mode: string;
    count: string;
    percentage: string;
  };
  pipeline: {
    title: string;
    description: string;
    contentLabel: string;
    contentPlaceholder: string;
    templateLabel: string;
    templateAnalyze: string;
    templateCode: string;
    templateDraft: string;
    sendPrompt: string;
    running: string;
    synthesizing: string;
    noResults: string;
    sendFailed: string;
    stageBreakdown: string;
    stage: string;
    model: string;
    latency: string;
    viewInThread: string;
  };
  costEnsemble: {
    title: string;
    description: string;
    contentLabel: string;
    contentPlaceholder: string;
    sendPrompt: string;
    running: string;
    synthesizing: string;
    noResults: string;
    sendFailed: string;
    tier: string;
    tierSingle: string;
    tierDuo: string;
    tierTrio: string;
    complexity: string;
    risk: string;
    ambiguity: string;
    reasoning: string;
    candidates: string;
    viewInThread: string;
  };
  rolePack: {
    title: string;
    description: string;
    contentLabel: string;
    contentPlaceholder: string;
    packLabel: string;
    packCoding: string;
    packResearch: string;
    packMarketing: string;
    packLegal: string;
    sendPrompt: string;
    running: string;
    synthesizing: string;
    noResults: string;
    sendFailed: string;
    teamBreakdown: string;
    role: string;
    model: string;
    latency: string;
    viewInThread: string;
  };
  advancedModelSelector: {
    label: string;
    auto: string;
    loading: string;
    description: string;
    empty: string;
  };
  workspaceConnectors: {
    title: string;
    description: string;
    createConnector: string;
    editConnector: string;
    deleteConnector: string;
    testHealth: string;
    triggerSync: string;
    name: string;
    nameHelp: string;
    provider: string;
    providerHelp: string;
    permissionLevel: string;
    permissionLevelHelp: string;
    status: string;
    connected: string;
    degraded: string;
    disconnected: string;
    pendingAuth: string;
    unknown: string;
    noConnectors: string;
    noConnectorsDesc: string;
    noConnectorsGuidance: string;
    overviewDescription: string;
    manageAppConfigs: string;
    goToAppConfigs: string;
    connectorCreated: string;
    connectorCreateFailed: string;
    connectorDeleted: string;
    connectorDeleteFailed: string;
    healthCheckStarted: string;
    healthCheckFailed: string;
    syncStarted: string;
    syncFailed: string;
    loadFailed: string;
    loadingConnectors: string;
    addConnector: string;
    connectViaOAuth: string;
    lastSync: string;
    never: string;
    syncRuns: string;
    healthEvents: string;
    enabled: string;
    disabled: string;
    deleteConfirm: string;
    namePlaceholder: string;
    paused: string;
  };
  workspaceObjects: {
    title: string;
    description: string;
    loading: string;
    loadFailed: string;
    noObjects: string;
    noObjectsDesc: string;
    selectConnector: string;
    source: string;
    viewObject: string;
  };
  workspaceSearch: {
    title: string;
    description: string;
    placeholder: string;
    searching: string;
    noResults: string;
    noResultsDesc: string;
    searchFailed: string;
    resultCount: string;
    viewSource: string;
    score: string;
  };
  workspaceObjectDetail: {
    title: string;
    description: string;
    loadFailed: string;
    refresh: string;
    refreshing: string;
    refreshFailed: string;
    content: string;
    metadata: string;
    externalCreated: string;
    externalUpdated: string;
    openInProvider: string;
    author: string;
  };
  connectorDetail: {
    title: string;
    description: string;
    loadFailed: string;
    never: string;
    lastSync: string;
    syncRunsCount: string;
    objectsCount: string;
    recentObjects: string;
    noObjects: string;
    syncHistory: string;
    noSyncRuns: string;
    syncRunLine: string;
    healthHistory: string;
    noHealthEvents: string;
    healthOk: string;
    activating: string;
    askAi: string;
    askAiTitle: string;
    reconnect: string;
    reconnectTitle: string;
    reconnectDescription: string;
  };
  workspaceSyncRuns: {
    title: string;
    description: string;
    loading: string;
    loadFailed: string;
    empty: string;
    started: string;
    status: string;
    type: string;
    delta: string;
    found: string;
    synced: string;
    failed: string;
    duration: string;
  };
  workspaceSync: {
    dashboard: {
      title: string;
      description: string;
      error_title: string;
      empty_title: string;
      empty_description: string;
      scheduler_title: string;
      scheduler_enabled: string;
      last_tick: string;
      active_runs: string;
      dlq_backlog: string;
      connectors_title: string;
      col: {
        connector: string;
        freshness: string;
        last_sync: string;
        cadence: string;
        success_rate: string;
        avg_duration: string;
        status: string;
      };
    };
    band: {
      fresh: string;
      slow: string;
      stale: string;
    };
    cadence: {
      label: string;
      '1m': string;
      '5m': string;
      '10m': string;
      '30m': string;
      '1h': string;
      save: string;
      saving: string;
      saved: string;
    };
    pause: {
      pause: string;
      resume: string;
      paused_label: string;
      reason_placeholder: string;
    };
    chip: {
      synced_ago: string;
      stale: string;
      paused: string;
    };
  };
  aiActions: {
    dialog: {
      title: string;
      description: string;
      model_label: string;
      generate: string;
      regenerate: string;
      resolving: string;
      cancel: string;
      close: string;
      copy: string;
      copied: string;
      generated_by: string;
      resolution_mode: string;
      resolution_primary: string;
      resolution_fallback: string;
    };
  };
  approvals: {
    page: {
      title: string;
      description: string;
      empty_title: string;
      empty_description: string;
      error_title: string;
      error_description: string;
    };
    card: {
      approve: string;
      reject: string;
      edit: string;
      edited: string;
      source_stale: string;
      attribution_auto: string;
      attribution_manual: string;
    };
    bulk: {
      selected: string;
      approve_all: string;
      clear: string;
    };
    edit: {
      title: string;
      description: string;
      payload_label: string;
      reason_placeholder: string;
      save: string;
      cancel: string;
      invalid_json: string;
    };
    reject: {
      title: string;
      description: string;
      reason_placeholder: string;
      confirm: string;
      cancel: string;
    };
  };
  automationPreferences: {
    page: {
      title: string;
      description: string;
      loading: string;
      error: string;
      empty: string;
    };
    row: {
      enabled: string;
      disabled: string;
      toggleAria: string;
      autoApproveBelowRisk: string;
      autoApproveDisabled: string;
      autoApproveAt: string;
      perDayBudget: string;
      perDayBudgetPlaceholder: string;
      clear: string;
    };
  };
  connectorGrants: {
    title: string;
    description: string;
    loading: string;
    error: string;
    empty: string;
    granteeUserIdLabel: string;
    granteeUserIdPlaceholder: string;
    accessLevelLabel: string;
    grant: string;
    granting: string;
    revoke: string;
    revoking: string;
    grantedBy: string;
    levelReadOnly: string;
    levelAiActions: string;
    levelFull: string;
  };
  emailSignatures: {
    page: {
      title: string;
      description: string;
      loading: string;
      error: string;
      empty: string;
      create: string;
      edit: string;
      delete: string;
      deleting: string;
      defaultBadge: string;
    };
    dialog: {
      createTitle: string;
      editTitle: string;
      nameLabel: string;
      namePlaceholder: string;
      bodyLabel: string;
      bodyPlaceholder: string;
      defaultLabel: string;
      save: string;
      saving: string;
      cancel: string;
    };
  };
  emailTemplates: {
    page: {
      title: string;
      description: string;
      loading: string;
      error: string;
      empty: string;
      create: string;
      edit: string;
      delete: string;
      deleting: string;
      defaultBadge: string;
      subjectLabel: string;
    };
    dialog: {
      createTitle: string;
      editTitle: string;
      nameLabel: string;
      namePlaceholder: string;
      subjectLabel: string;
      subjectPlaceholder: string;
      bodyLabel: string;
      bodyPlaceholder: string;
      defaultLabel: string;
      save: string;
      saving: string;
      cancel: string;
    };
  };
  inbox: {
    page: {
      title: string;
      description: string;
      loading: string;
      loadingMore: string;
      loadMore: string;
      empty: string;
      error: string;
    };
    filter: {
      providers: string;
      types: string;
      needsAttention: string;
      hasSuggestion: string;
      reset: string;
    };
    row: {
      needsAttention: string;
      hasSuggestion: string;
      mark: string;
      unmark: string;
      openExternal: string;
      viewFile: string;
    };
  };
  fileViewer: {
    loading: string;
    error: string;
    unsupported: string;
    download: string;
    close: string;
  };
  search: {
    page: {
      title: string;
      description: string;
      placeholder: string;
      submit: string;
      searching: string;
      reset: string;
      local: string;
      noResults: string;
      error: string;
    };
  };
  digest: {
    page: {
      title: string;
      description: string;
      loading: string;
      error: string;
      noTodayDigest: string;
      today: string;
      history: string;
      generatedAt: string;
      sectionsCount: string;
      triggerDaily: string;
      triggerWeekly: string;
      triggering: string;
      preferenceHint: string;
    };
    section: {
      highlights: string;
      actionItems: string;
    };
  };
  adminAutomation: {
    dismiss: string;
    retry: string;
    policies: {
      title: string;
      description: string;
      loading: string;
      error: string;
      empty: string;
      systemDefault: string;
      priority: string;
      providerRegex: string;
      actionKindRegex: string;
      riskCeiling: string;
      delete: string;
      cannotDelete: string;
      toggleActive: string;
      toggleSucceeded: string;
      toggleFailed: string;
      deleteSucceeded: string;
      deleteFailed: string;
      mutationError: string;
      addPolicy: string;
      editPolicy: string;
      createTitle: string;
      editTitle: string;
      createDescription: string;
      editDescription: string;
      createSucceeded: string;
      createFailed: string;
      updateSucceeded: string;
      updateFailed: string;
      submit: string;
      submitting: string;
      nameLabel: string;
      nameHelp: string;
      descriptionLabel: string;
      kindFieldLabel: string;
      requireReasonLabel: string;
      isActiveLabel: string;
      riskMaxScoreLabel: string;
      priorityLabel: string;
      kindLabel: {
        DENY: string;
        ALLOW: string;
        AUTO_APPROVE: string;
      };
      riskLabel: {
        LOW: string;
        MEDIUM: string;
        HIGH: string;
        CRITICAL: string;
      };
    };
    rules: {
      title: string;
      description: string;
      loading: string;
      error: string;
      empty: string;
      systemDefault: string;
      priority: string;
      eventType: string;
      actionKind: string;
      providerRegex: string;
      contentRegex: string;
      delete: string;
      cannotDelete: string;
      toggleActive: string;
      toggleSucceeded: string;
      toggleFailed: string;
      deleteSucceeded: string;
      deleteFailed: string;
      mutationError: string;
      addRule: string;
      editRule: string;
      createTitle: string;
      editTitle: string;
      createDescription: string;
      editDescription: string;
      createSucceeded: string;
      createFailed: string;
      updateSucceeded: string;
      updateFailed: string;
      submit: string;
      submitting: string;
      nameLabel: string;
      nameHelp: string;
      descriptionLabel: string;
      eventTypeHelp: string;
      actionKindHelp: string;
      isActiveLabel: string;
      priorityLabel: string;
    };
  };
  adminWebhooks: {
    page: {
      title: string;
      description: string;
      loading: string;
      error: string;
      empty: string;
    };
    filter: {
      providerPlaceholder: string;
      connectorPlaceholder: string;
      signaturePlaceholder: string;
      signatureAny: string;
      signatureValid: string;
      signatureInvalid: string;
      clear: string;
    };
    row: {
      deliveryId: string;
      connector: string;
      bytes: string;
      processedAt: string;
    };
    status: {
      accepted: string;
      rejected: string;
      idempotent: string;
    };
    replay: string;
    replaying: string;
    replaySucceeded: string;
    replayFailed: string;
  };
  implHandoff: {
    page: {
      title: string;
      description: string;
      loading: string;
      error: string;
      empty: string;
      openThread: string;
    };
    picker: {
      title: string;
      description: string;
      cancel: string;
      CHAT: { hint: string };
      AGENT: { hint: string };
      CLIPBOARD: { hint: string };
    };
  };
  learned: {
    panel: {
      title: string;
      subtitle: string;
      description: string;
      loading: string;
      error: string;
      empty: string;
    };
  };
  research: {
    toggle: {
      placeholder: string;
      autoProvider: string;
      noProviders: string;
    };
    modes: {
      off: string;
      searchOnly: string;
      searchThenFetch: string;
      searchFetchExtract: string;
    };
    providers: {
      title: string;
      description: string;
      createButton: string;
      createTitle: string;
      createDescription: string;
      create: string;
      creating: string;
      kind: string;
      name: string;
      baseUrl: string;
      apiKey: string;
      test: string;
      secretStored: string;
      healthy: string;
      unhealthy: string;
      loadFailed: string;
      emptyTitle: string;
      emptyDescription: string;
      col: {
        name: string;
        kind: string;
        baseUrl: string;
        status: string;
        secret: string;
        actions: string;
      };
      namePlaceholder: string;
    };
    runs: {
      title: string;
      description: string;
      loadFailed: string;
      emptyTitle: string;
      emptyDescription: string;
    };
    evidence: {
      title: string;
      empty: string;
      noTitle: string;
      confidence: string;
      warnings: string;
      requestedModel: string;
      toolsUsed: string;
    };
    results: {
      open: string;
      title: string;
      description: string;
      provider: string;
      selectionMode: string;
      selectionAuto: string;
      selectionExplicit: string;
      fallbackUsed: string;
      query: string;
      evidenceCount: string;
      attempts: string;
      trace: string;
    };
  };
  workspaceActions: {
    title: string;
    description: string;
    approve: string;
    reject: string;
    cancel: string;
    rejectTitle: string;
    rejectDesc: string;
    rejectReasonPlaceholder: string;
    confirmReject: string;
    connector: string;
    rejectionReason: string;
    pendingApproval: string;
    executing: string;
    executed: string;
    failed: string;
    rejected: string;
    noActions: string;
    noActionsDesc: string;
    loadFailed: string;
    viewPayload: string;
    requestedAt: string;
    reviewedAt: string;
    executedAt: string;
    approved: string;
    expired: string;
    edited: string;
  };
  workspaceProviders: {
    catalog: {
      title: string;
      description: string;
      loadFailed: string;
      emptyTitle: string;
      emptyDescription: string;
      available: string;
      comingSoon: string;
      objectTypes: string;
      docs: string;
    };
    appConfigs: {
      title: string;
      description: string;
      createButton: string;
      createTitle: string;
      createDescription: string;
      create: string;
      creating: string;
      editTitle: string;
      editDescription: string;
      editSecretHint: string;
      save: string;
      saving: string;
      provider: string;
      providerPlaceholder: string;
      name: string;
      namePlaceholder: string;
      authMode: string;
      descriptionLabel: string;
      descriptionPlaceholder: string;
      test: string;
      connect: string;
      testResult: string;
      secretStored: string;
      emptyTitle: string;
      emptyDescription: string;
      loadFailed: string;
      fields: {
        secret: string;
      };
      columns: {
        name: string;
        provider: string;
        authMode: string;
        status: string;
        secret: string;
        lastValidated: string;
        actions: string;
      };
      errors: {
        nameRequired: string;
      };
    };
    oauthCallback: {
      exchangingTitle: string;
      exchangingDescription: string;
      successTitle: string;
      successDescription: string;
      successDescriptionNamed: string;
      errorTitle: string;
      errorUnknown: string;
    };
  };
  agent: {
    title: string;
    description: string;
    loading: string;
    loadFailed: string;
    noSessions: string;
    noSessionsDesc: string;
    noCommands: string;
    noCommandsDesc: string;
    noRepos: string;
    noReposDesc: string;
    terminal: string;
    terminalDesc: string;
    capabilities: string;
    capabilitiesDesc: string;
    capabilityClass: string;
    capabilityOperation: string;
    blastRadius: string;
    reversibility: string;
    riskScore: string;
    matchedPolicy: string;
    activity: string;
    activityDesc: string;
    autoApproved: string;
    denied: string;
    rolledBack: string;
    recipes: string;
    recipesDesc: string;
    noRecipes: string;
    noRecipesDesc: string;
    recipeRunDetail: string;
    recipeRunDetailDesc: string;
    runStatus: string;
    cancelRun: string;
    steps: string;
    marketplace: string;
    marketplaceDesc: string;
    noListings: string;
    noListingsDesc: string;
    install: string;
    activityMemory: string;
    activityMemoryDesc: string;
    noActivity: string;
    noActivityDesc: string;
    repos: string;
    reposDesc: string;
    pendingCommands: string;
    pendingApproval: string;
    recentCommands: string;
    approve: string;
    reject: string;
    version: string;
    commands: string;
    files: string;
    dirty: string;
    connect: {
      title: string;
      approveDescription: string;
      scopesLabel: string;
      approveButton: string;
      denyButton: string;
      successTitle: string;
      successBody: string;
      expiredTitle: string;
      expiredBody: string;
      deniedTitle: string;
      deniedBody: string;
      accountMismatchTitle: string;
      accountMismatchBody: string;
      deviceNamePlaceholder: string;
    };
    rejectedByUser: string;
  };
  discovery: {
    title: string;
    description: string;
    searchPlaceholder: string;
    filter: {
      status: string;
      all: string;
      pending: string;
      approved: string;
      rejected: string;
      imported: string;
      duplicate: string;
    };
    actions: {
      refresh: string;
      dryRun: string;
      approve: string;
      reject: string;
    };
    runs: {
      title: string;
      empty: string;
      discovered: string;
      imported: string;
      skipped: string;
    };
    candidates: {
      title: string;
      empty: {
        title: string;
        description: string;
      };
    };
    candidate: {
      size: string;
      confidence: string;
    };
    packs: {
      title: string;
      empty: string;
      install: string;
      noModelsYet: string;
    };
  };
  validation: {
    required: string;
    invalidEmail: string;
    tooShort: string;
    tooLong: string;
    invalidUrl: string;
    fileTooLarge: string;
    invalidFileType: string;
  };
  toast: {
    loginSuccess: string;
    loginFailed: string;
    logoutFailed: string;
    sessionExpired: string;
  };
  accessibility: {
    closeSidebar: string;
    openSidebar: string;
    toggleSidebar: string;
    userMenu: string;
    closeDialog: string;
    openMenu: string;
    search: string;
    openSearch: string;
    closeSearch: string;
    navigation: string;
    notifications: string;
    languageSelector: string;
    themeToggle: string;
    resizeInput: string;
  };
  actions: {
    test: string;
    testing: string;
    sync: string;
    syncing: string;
    archive: string;
    unarchive: string;
    pin: string;
    unpin: string;
    duplicate: string;
    copy: string;
    copied: string;
    copyToClipboard: string;
    view: string;
    viewAll: string;
    viewDetails: string;
    download: string;
    upload: string;
    refresh: string;
    reset: string;
    apply: string;
    approve: string;
    approving: string;
    reject: string;
    rejecting: string;
    reload: string;
    reconnect: string;
    expand: string;
    collapse: string;
    enable: string;
    disable: string;
    remove: string;
    add: string;
    select: string;
    selectAll: string;
    deselectAll: string;
    clear: string;
    submit: string;
    more: string;
    less: string;
    showMore: string;
    showLess: string;
  };
  logs: {
    allLevels: string;
    allActions: string;
    allSeverities: string;
    allMethods: string;
    methodPlaceholder: string;
    componentPlaceholder: string;
    actionPlaceholder: string;
    routePlaceholder: string;
    routeRegexPlaceholder: string;
    userIdPlaceholder: string;
    messageContainsPlaceholder: string;
    servicePlaceholder: string;
    controllerPlaceholder: string;
    entityTypePlaceholder: string;
    startDate: string;
    endDate: string;
    fullTextSearch: string;
    searchAllFields: string;
    avgLatency: string;
    errors: string;
    failedToLoadClient: string;
    failedToLoadClientDesc: string;
    failedToLoadServer: string;
    failedToLoadServerDesc: string;
    levelDistribution: string;
    loadingClient: string;
    loadingServer: string;
    noActionData: string;
    noClientLogs: string;
    noClientLogsActivityDesc: string;
    noComponentData: string;
    noServerLogs: string;
    noServerLogsActivityDesc: string;
    noServiceData: string;
    percentOfTotal: string;
    topActions: string;
    topComponents: string;
    topServices: string;
    totalLogs: string;
  };
  gmail: {
    page: {
      title: string;
      description: string;
      empty_title: string;
      empty_description: string;
      error_title: string;
      no_connector_title: string;
      no_connector_description: string;
    };
    message: {
      from: string;
      to: string;
      date: string;
      subject: string;
      reply: string;
      open_in_gmail: string;
      unread: string;
      attachments: string;
      download: string;
      htmlIframeTitle: string;
      toggleHtml: string;
      showHtml: string;
      toggleImages: string;
      loadImages: string;
      imagesBlocked: string;
    };
    actions: {
      summarize: string;
      draft_reply: string;
      extract_tasks: string;
      send_email: string;
      draft_sent: string;
      draft_failed: string;
    };
  };
  jira: {
    page: {
      title: string;
      description: string;
      empty_title: string;
      empty_description: string;
      error_title: string;
      no_connector_title: string;
      no_connector_description: string;
    };
    ticket: {
      status: string;
      priority: string;
      assignee: string;
      reporter: string;
      project: string;
      sprint: string;
      story_points: string;
      due_date: string;
      labels: string;
      issue_type: string;
      open_in_jira: string;
      unassigned: string;
      no_sprint: string;
    };
    actions: {
      summarize: string;
      write_comment: string;
      extract_tasks: string;
    };
  };
  source_control: {
    page: {
      title: string;
      description: string;
      empty_title: string;
      empty_description: string;
      error_title: string;
      no_connector_title: string;
      no_connector_description: string;
    };
    pr: {
      author: string;
      source_branch: string;
      target_branch: string;
      reviewers: string;
      additions: string;
      deletions: string;
      labels: string;
      draft: string;
      open_pr: string;
      state_open: string;
      state_closed: string;
      state_merged: string;
      review_approved: string;
      review_changes: string;
      review_pending: string;
    };
    actions: {
      review: string;
      summarize: string;
      extract_tasks: string;
    };
  };
  slack: {
    page: {
      title: string;
      description: string;
      empty_title: string;
      empty_description: string;
      error_title: string;
      no_connector_title: string;
      no_connector_description: string;
    };
    message: {
      channel: string;
      sender: string;
      date: string;
      thread_reply: string;
      open_in_slack: string;
      reactions: string;
    };
    actions: {
      summarize: string;
      reply: string;
      extract_tasks: string;
    };
  };
  confluence: {
    page: {
      title: string;
      description: string;
      empty_title: string;
      empty_description: string;
      error_title: string;
      no_connector_title: string;
      no_connector_description: string;
    };
    article: {
      space: string;
      author: string;
      modified_by: string;
      version: string;
      labels: string;
      parent: string;
      open_page: string;
    };
    actions: {
      summarize: string;
      extract_tasks: string;
      write_comment: string;
    };
  };
  docs: {
    page: {
      title: string;
      description: string;
      empty_title: string;
      empty_description: string;
      error_title: string;
      no_connector_title: string;
      no_connector_description: string;
    };
    file: {
      owner: string;
      modified_by: string;
      size: string;
      type: string;
      open_file: string;
      shared_with: string;
      path: string;
    };
    actions: {
      summarize: string;
      extract_tasks: string;
      draft_email: string;
    };
  };
  figma: {
    page: {
      title: string;
      description: string;
      empty_title: string;
      empty_description: string;
      error_title: string;
      no_connector_title: string;
      no_connector_description: string;
    };
    design: {
      team: string;
      project: string;
      modified_by: string;
      components: string;
      open_in_figma: string;
      last_updated: string;
    };
    actions: {
      summarize: string;
      extract_components: string;
      draft_spec: string;
    };
  };
  workflow: {
    page: {
      title: string;
      description: string;
      empty_title: string;
      empty_description: string;
      error_title: string;
    };
    object: {
      add: string;
      remove: string;
      selected_count: string;
      clear_all: string;
    };
    actions: {
      summarize_all: string;
      extract_requirements: string;
      draft_prd: string;
    };
  };
  gpuBadge: {
    cpuOnly: string;
    noGpu: string;
    vendor: {
      nvidia: string;
      amd: string;
      metal: string;
      intel: string;
      unknown: string;
      cpu: string;
    };
  };
  localFrontier: {
    title: string;
    subtitle: string;
    loading: string;
    catalogEmpty: string;
    catalogError: string;
    contextLength: string;
    requiresRamGb: string;
    sourceLink: string;
    actions: {
      download: string;
      load: string;
      unload: string;
      deleteWeights: string;
      configure: string;
    };
    download: {
      start: string;
      cancel: string;
      retry: string;
    };
    compat: {
      fits: string;
      warns: string;
      refuses: string;
    };
    qualityTier: {
      survival: string;
      balanced: string;
      best: string;
    };
    preflight: {
      RAM_INSUFFICIENT: string;
      DISK_INSUFFICIENT: string;
      GPU_INSUFFICIENT: string;
      BINARY_NOT_INSTALLED: string;
      RUNTIME_INCOMPATIBLE: string;
    };
    override: {
      warning: string;
      confirmTypeSize: string;
    };
    delete: {
      confirm: string;
      confirmTypePrompt: string;
    };
    hardware: {
      title: string;
      subtitle: string;
      refresh: string;
      ram: string;
      disk: string;
      cpu: string;
      gpu: string;
      binary: string;
      cores: string;
      noGpu: string;
      notInstalled: string;
      loadedModel: string;
      noLoadedModel: string;
    };
    filters: {
      category: string;
      qualityTier: string;
      compatibleOnly: string;
      refreshCatalog: string;
      refreshing: string;
      allCategories: string;
      allTiers: string;
      categoryCoding: string;
      categoryReasoning: string;
      categoryThinking: string;
      categoryGeneral: string;
      categoryFileGen: string;
    };
    downloads: {
      title: string;
      empty: string;
      cancel: string;
      retry: string;
      remove: string;
      status: string;
      bytes: string;
      files: string;
      rate: string;
      eta: string;
      unknown: string;
    };
    deleteDialog: {
      title: string;
      description: string;
      promptLabel: string;
      placeholder: string;
      cancel: string;
      confirm: string;
      warning: string;
    };
    overrideDialog: {
      title: string;
      description: string;
      reasonsTitle: string;
      cancel: string;
      proceed: string;
    };
    configDialog: {
      title: string;
      description: string;
      ngpuLayers: string;
      ngpuLayersHint: string;
      ctxSize: string;
      ctxSizeHint: string;
      threads: string;
      threadsHint: string;
      cpuMoe: string;
      cpuMoeHint: string;
      customArgs: string;
      customArgsHint: string;
      cancel: string;
      save: string;
    };
  };
};

export type TranslationNamespace = keyof TranslationDictionary;

export type TranslationKey<NS extends TranslationNamespace> = keyof TranslationDictionary[NS];

export type FlatTranslationKey = {
  [NS in TranslationNamespace]: `${NS}.${string & TranslationKey<NS>}`;
}[TranslationNamespace];

export type LocaleConfig = {
  locale: Locale;
  label: string;
  dir: Direction;
};

export type LocaleContextValue = {
  locale: Locale;
  dir: Direction;
  setLocale: (locale: Locale) => void;
};

export type LocaleProviderProps = {
  children: React.ReactNode;
  initialLocale?: Locale;
};

export type TranslateFunction = (key: string, params?: Record<string, string | number>) => string;

export type UseTranslationReturn = {
  t: TranslateFunction;
  locale: Locale;
  dir: Direction;
};
