declare namespace Api {
  namespace System {
    namespace DbBackup {
      interface DbBackupConfig {
        backupEnabled: boolean
        backupCron: string
        backupTables: string[]
        backupExcludeTables: string[]
        backupPath: string
        retentionCount: number
        batchSize: number
        uploadEnabled: boolean
        uploadUrl: string
        uploadToken: string
      }

      interface DbBackupTable {
        name: string
        comment?: string
      }

      interface DbBackupProgress {
        running: boolean
        phase: string
        currentTable: string
        tableIndex: number
        totalTables: number
        rowsDumped: number
        message: string
      }

      interface DbBackupRecord {
        id: number
        backupTime?: string
        backupTime$?: string
        tablesDumped?: string
        fileName?: string
        fileSize?: number
        status: string
        triggerType?: string
        errorMessage?: string
        uploadStatus?: string
        uploadTime?: string
        uploadTime$?: string
        uploadError?: string
        durationMs?: number
      }

      interface DbBackupHistoryParams {
        current: number
        pageSize: number
      }

      interface DbBackupHistoryResponse {
        records: DbBackupRecord[]
        total: number
        current: number
        size: number
      }
    }
  }
}
