/** Chain verification for tamper-evident audit receipt chains. */
import type CodecPort from '../../../ports/CodecPort.ts';
import type CommitPort from '../../../ports/CommitPort.ts';
import type RefPort from '../../../ports/RefPort.ts';
import type BlobPort from '../../../ports/BlobPort.ts';
import type TreePort from '../../../ports/TreePort.ts';
export type ChainError = {
    code: string;
    message: string;
    commit?: string;
};
export type ChainWarning = {
    code: string;
    message: string;
};
export type ChainResult = {
    writerId: string;
    ref: string;
    status: string;
    receiptsVerified: number;
    receiptsScanned: number;
    tipCommit: string | null;
    tipAtStart: string | null;
    genesisCommit: string | null;
    stoppedAt: string | null;
    since: string | null;
    errors: ChainError[];
    warnings: ChainWarning[];
};
type Persistence = CommitPort & RefPort & BlobPort & TreePort;
/**
 * Verifies a single writer's audit receipt chain from tip to genesis.
 */
export default class AuditChainVerifier {
    private readonly _persistence;
    private readonly _codec;
    constructor(persistence: Persistence, codec: CodecPort);
    /**
     * Verifies a single audit chain for a writer.
     */
    verifyChain(graphName: string, writerId: string, options?: {
        since?: string;
    }): Promise<ChainResult>;
    private _walkChain;
    private _checkOidLengthConsistency;
    private _validateWriterConsistency;
    private _handleGenesisOrContinuation;
    private _readReceipt;
    private _validateOids;
    private _validateChainLink;
    private _checkTipMoved;
    private _addError;
}
export {};
