import { EventSubscriberRegistry } from './event-subscriber.registry';
import { InboxService } from './inbox.service';
import { IntegrationLinkService } from './integration-link.service';
import { IntegrationSettingsService } from './integration-settings.service';
import { OutboxService } from './outbox.service';
export declare class OutboxProcessor {
    private readonly outboxService;
    private readonly inboxService;
    private readonly linkService;
    private readonly registry;
    private readonly integrationSettingsService;
    private readonly logger;
    constructor(outboxService: OutboxService, inboxService: InboxService, linkService: IntegrationLinkService, registry: EventSubscriberRegistry, integrationSettingsService: IntegrationSettingsService);
    /**
     * Process a batch of pending events
     * Called in a loop or by scheduled job
     */
    processBatch(options?: {
        batchSizeOverride?: number;
    }): Promise<number>;
    /**
     * Handle event that failed to process
     */
    private handleEventFailure;
    /**
     * Process all pending events at startup (drain)
     */
    startupDrain(): Promise<number>;
    /**
     * Get processor statistics
     */
    getStats(): Promise<{
        pending: number;
        processing: number;
        processed: number;
        failed: number;
        dead_letter: number;
        total: number;
        handlerCount: number;
    }>;
}
//# sourceMappingURL=outbox.processor.d.ts.map