import type CheckpointTailOpticSource from './CheckpointTailOpticSource.ts';
import type { CheckpointTailPatchEntry } from './CheckpointTailOpticSource.ts';
import type { ReadIdentityTailWitness } from './ReadIdentity.ts';
export type CheckpointTailScanBasis = {
    readonly schema: number;
    readonly frontier: Map<string, string>;
};
export type TailWitnessScan = {
    readonly witnesses: readonly ReadIdentityTailWitness[];
    readonly entries: readonly CheckpointTailPatchEntry[];
};
export default class CheckpointTailWitnessScan {
    private readonly _source;
    private readonly _maxTailPatches;
    constructor(options: {
        readonly source: CheckpointTailOpticSource;
        readonly maxTailPatches: number;
    });
    collect(options: {
        readonly basis: CheckpointTailScanBasis;
        readonly includeEntry: (entry: CheckpointTailPatchEntry) => boolean;
    }): Promise<TailWitnessScan>;
    private _sortedWriterIds;
    private _scanWriterTail;
    private _loadWriterTail;
    private _accountTailBudget;
    private _validateWriterTail;
}
