/** * Rubric Protocol — Background Attestation Queue * Buffers attestation calls, submits in batches, retries on failure. * Survives process restart via optional JSON persistence. */ export interface QueueItem { id: string; endpoint: string; payload: Record; headers: Record; attempts: number; maxAttempts: number; nextRetryAt: number; enqueuedAt: number; failedPermanently?: boolean; lastError?: string; } export interface QueueConfig { flushInterval?: number; batchSize?: number; maxAttempts?: number; backoffBase?: number; persistPath?: string; onDeadLetter?: (item: QueueItem) => void; onSuccess?: (item: QueueItem, response: unknown) => void; onError?: (item: QueueItem, error: Error) => void; } export type QueueStats = { queued: number; inflight: number; deadLetters: number; totalSubmitted: number; totalFailed: number; }; export declare class BackgroundQueue { private queue; private deadLetters; private inflight; private timer; private totalSubmitted; private totalFailed; private readonly config; constructor(config?: QueueConfig); enqueue(endpoint: string, payload: Record, headers: Record, options?: { maxAttempts?: number; }): string; start(): void; stop(): Promise; stats(): QueueStats; flush(): Promise; private _flush; private _submit; private _persist; private _loadFromDisk; } export declare function sleep(ms: number): Promise; //# sourceMappingURL=background-queue.d.ts.map