import type { BackupConfig } from "./config.js"; import type { DrillReport } from "./drill.js"; import type { Manifest } from "./manifest.js"; export interface Pinger { start(): Promise; success(summary: string): Promise; /** sensitive:这次运行用到的连接串、密钥等,发出去之前从 reason 里抹掉 */ fail(reason: string, sensitive?: string[]): Promise; } export declare function createPinger(rawUrl: string | undefined, opts?: { timeoutMs?: number; attempts?: number; retryDelayMs?: number; }): Pinger; /** backup 成功时发给监控的一行。快照名取对象键里的目录名(和 drill --snapshot 认的是同一个) */ export declare function backupSummary(manifest: Manifest): string; /** drill 跑完(没抛错)后发哪种 ping、带什么:通过 = 成功;没通过 = 失败,列出没过的检查 */ export declare function drillOutcome(report: DrillReport): { pass: boolean; text: string; }; /** 报错可以自带一句发给监控用的说法(pingMessage),比如不能复述配置文件原文的那种 */ export declare function pingMessageOf(error: unknown): string; /** * 失败原因发出去之前抹掉连接信息。先按值抹(这次运行确实用到的连接串、密码、主机、密钥), * 再按形状兜底:pg / S3 的报错会带主机名、IP、整条连接串,配置文件解析失败时 JSON.parse * 的报错还会带一截文件原文,这些都不是事先知道的值。 */ export declare function scrubForPing(text: string, sensitive: string[]): string; /** 这次运行里不该出现在 ping 里的值:连接串、密码、主机、项目 ref、桶和 Storage 的密钥。 */ export declare function sensitiveValuesOf(config: BackupConfig | undefined, extraDatabaseUrl?: string): string[];