/**
 * Audit chain verification.
 *
 * Проходит по строкам `mcp_audit.audit_log` в порядке `createdAt ASC` для
 * заданного `appId` (и опционального диапазона дат) и проверяет, что
 * `rowHash = sha256(prevRowHash + content)` совпадает со stored значением.
 *
 * Используется:
 *   - в CLI команде `els-mcp verify-audit --app=X --from=Y --to=Z`
 *     (см. `src/cli.ts`)
 *   - в smoke / health-check скриптах
 *
 * Поведение при отсутствии Prisma client — корректно возвращает пустой
 * результат с `prismaAvailable=false`.
 */
import type { Logger } from 'pino';
import { type McpPrismaClient } from './prisma.js';
export interface VerifyChainOptions {
    appId: string;
    /** ISO-дата (inclusive). Если не задана — с начала. */
    from?: string | Date;
    /** ISO-дата (exclusive). Если не задана — до конца. */
    to?: string | Date;
    /** Batch size для пагинации. Default 1000. */
    batchSize?: number;
    databaseUrl?: string;
    log?: Logger;
    prismaOverride?: McpPrismaClient | null;
}
export interface VerifyBreakInfo {
    /** Row id (или string-представление), на котором сломалась chain. */
    id: string;
    /** ISO-timestamp проблемной строки. */
    createdAt: string;
    /** Ожидаемый rowHash (пересчитанный). */
    expectedHash: string;
    /** Stored rowHash. */
    actualHash: string;
}
export interface VerifyChainResult {
    totalChecked: number;
    prismaAvailable: boolean;
    /** null если цепочка корректна. Иначе — детали первого разрыва. */
    breakAt: VerifyBreakInfo | null;
}
/**
 * Verifies the audit hash-chain integrity for `appId`.
 * Не модифицирует БД, читает в batch'ах для крупных таблиц.
 */
export declare function verifyChain(opts: VerifyChainOptions): Promise<VerifyChainResult>;
/**
 * Pretty-printer для CLI: возвращает многострочный отчёт.
 */
export declare function formatVerifyResult(result: VerifyChainResult): string;
//# sourceMappingURL=verify.d.ts.map