import { type Hash } from '@ariestools/sdk';
import type { Payload, Sequence, WithHashMeta } from '@xyo-network/sdk';
export interface ExistingItems<T> {
    indexes: number[];
    items: T[];
}
export interface ValidationResultContext<TItem, TResult> {
    bundle: WithHashMeta<Payload>;
    item: TItem;
    result: TResult;
}
export interface SequencedBundle extends WithHashMeta<Payload> {
    _sequence?: Sequence;
}
export interface ApplyValidationResultsParams<TItem, TResult> {
    bundles: WithHashMeta<Payload>[];
    isValidated: (result: TResult) => boolean;
    onInvalid?: (context: ValidationResultContext<TItem, TResult>) => Promise<void> | void;
    remaining: ExistingItems<TItem>;
    results: TResult[];
    valid: boolean[];
}
export declare const applyValidationResults: <TItem, TResult>({ bundles, isValidated, onInvalid, remaining, results, valid, }: ApplyValidationResultsParams<TItem, TResult>) => Promise<void>;
export declare const collectExistingItems: <T>(items: (T | undefined)[]) => ExistingItems<T>;
export declare const invalidBundleHashes: (bundles: WithHashMeta<Payload>[], valid: boolean[]) => Hash[];
export declare const nextPruneCursor: (batch: SequencedBundle[], pruneHashes: Hash[], cursor: Sequence | undefined) => Sequence | undefined;
//# sourceMappingURL=pruneHelpers.d.ts.map