import { VerifiablePresentation } from '../types'; import { VerificationResult } from './service-provider'; import { VerificationError, VerificationErrorCode } from './verification-errors'; export interface BatchVerificationResult { presentationIndex: number; presentationId?: string; result: VerificationResult; processingTime: number; } export interface BatchRevocationResult { credentialId: string; isRevoked: boolean; error?: VerificationError; processingTime: number; } export interface BatchOperationOptions { maxConcurrency?: number; timeout?: number; continueOnError?: boolean; } export declare class BatchOperations { private options; private defaultOptions; constructor(options?: BatchOperationOptions); /** * Verify multiple presentations in parallel with controlled concurrency */ batchVerifyPresentations(presentations: VerifiablePresentation[], verifyFunction: (presentation: VerifiablePresentation) => Promise): Promise; /** * Check multiple credential revocations in parallel */ batchCheckRevocations(credentialIds: string[], checkFunction: (credentialId: string) => Promise): Promise>; /** * Batch verify presentations with revocation checks */ batchVerifyWithRevocationCheck(presentations: VerifiablePresentation[], verifyFunction: (presentation: VerifiablePresentation) => Promise, checkRevocationFunction: (credentialId: string) => Promise): Promise; /** * Get batch operation statistics */ generateBatchStatistics(results: BatchVerificationResult[]): { total: number; valid: number; invalid: number; averageProcessingTime: number; maxProcessingTime: number; minProcessingTime: number; errorDistribution: Record; }; /** * Filter results by criteria */ filterResults(results: BatchVerificationResult[], criteria: { validOnly?: boolean; maxProcessingTime?: number; minProcessingTime?: number; excludeErrorCodes?: VerificationErrorCode[]; }): BatchVerificationResult[]; /** * Utility: Add timeout to a promise */ private withTimeout; /** * Utility: Split array into chunks */ private chunkArray; /** * Extract presentation ID from presentation object */ private extractPresentationId; } //# sourceMappingURL=batch-operations.d.ts.map