/**
 * Generic CLEO database recovery contracts — generalised from the brain-only
 * T10303/T10304 shapes so the same envelope works for every role declared in
 * {@link DB_INVENTORY}.
 *
 * These types mirror {@link BrainRecoveryResult} + {@link BackupRecoverBrainResult}
 * almost verbatim, with two adjustments:
 *
 * 1. `observationsRecovered: number | null` is generalised to
 *    `rowCounts: DbRecoveredRowCounts` — a `Record<tableName, number | null>`
 *    keyed by the user tables discovered in the restored DB via
 *    `sqlite_master`. Tables that fail to count surface as `null`.
 * 2. Every envelope carries the `role: DbRole` it pertains to so envelopes from
 *    `cleo backup recover <role>` are self-describing across tools that may
 *    fan recovery out across multiple DBs.
 *
 * The brain-specific shapes ({@link BrainRecoveryResult},
 * {@link BackupRecoverBrainResult}, {@link BrainRecoveredRowCounts}) remain in
 * {@link brain.ts} as the backward-compatible surface — the brain CLI verb
 * (`cleo backup recover brain`) still emits the same envelope it did before
 * T10318 generalised the pipeline.
 *
 * @task T10318
 * @epic T10284
 * @saga T10281
 * @adr ADR-068
 */
export {};
//# sourceMappingURL=db-recovery.js.map