UNPKG

@openade/fe

Version:

Fatturazione Elettronica - Electronic Invoicing for Sistema di Interscambio (SDI)

74 lines 2.2 kB
import type { FatturaElettronica, InvoiceTransmissionResult } from '@openade/common'; import { type SDICOOPConfig } from './sdicoop.client'; export interface BatchConfig { maxBatchSize?: number; batchDelay?: number; maxConcurrentBatches?: number; retry?: { maxRetries?: number; retryDelay?: number; backoffMultiplier?: number; }; onProgress?: (progress: BatchProgress) => void; onError?: (error: BatchError) => void; } export interface BatchItem { id: string; invoice: FatturaElettronica; filename: string; channel: 'SDICOOP' | 'SDIFTP'; metadata?: Record<string, any>; } export interface BatchProgress { total: number; completed: number; failed: number; pending: number; currentBatch: number; totalBatches: number; percentage: number; estimatedTimeRemaining?: number; } export interface BatchError { itemId: string; message: string; details?: any; retryCount: number; timestamp: string; } export interface BatchResult { total: number; successful: number; failed: number; processingTime: number; results: Array<{ id: string; success: boolean; result?: InvoiceTransmissionResult; error?: string; retryCount: number; }>; summary: { successRate: number; averageProcessingTime: number; errors: BatchError[]; }; } export declare class BatchProcessor { private sdiClient; private config; constructor(sdiConfig: SDICOOPConfig, batchConfig?: BatchConfig); processBatch(items: BatchItem[]): Promise<BatchResult>; private processSingleBatch; private splitIntoBatches; private calculateEstimatedTimeRemaining; private delay; } export declare function createBatchProcessor(sdiConfig: SDICOOPConfig, batchConfig?: BatchConfig): BatchProcessor; export declare function processInvoiceBatch(invoices: Array<{ invoice: FatturaElettronica; filename: string; channel: 'SDICOOP' | 'SDIFTP'; metadata?: Record<string, any>; }>, sdiConfig: SDICOOPConfig, batchConfig?: BatchConfig): Promise<BatchResult>; //# sourceMappingURL=batch.processor.d.ts.map