import type Database from 'better-sqlite3'; export declare const EVENT_OUTBOX_ENABLED_ENV = "MEMENTO_EVENT_OUTBOX_ENABLED"; export type EventOutboxEventType = 'memory.remembered' | 'memory.recalled' | 'memory.forgotten' | 'relation.added' | 'procedure.updated' | 'consolidation.completed'; export interface EventOutboxEvent { id: string; eventType: EventOutboxEventType; targetUri: string; ownerId: string | null; payload: Record; idempotencyKey: string; attempts: number; availableAt: string; processedAt: string | null; lastError: string | null; createdAt: string; } export interface EnqueueEventOutboxInput { eventType: EventOutboxEventType; targetUri: string; ownerId?: string | null; payload?: Record; idempotencyKey: string; } export interface EventOutboxPublisher { publish(event: EventOutboxEvent): Promise; } export declare function isEventOutboxEnabled(): boolean; export declare class EventOutboxService { private readonly db; constructor(db: Database.Database); enqueue(input: EnqueueEventOutboxInput): boolean; pending(limit?: number): EventOutboxEvent[]; publishPending(publisher: EventOutboxPublisher, limit?: number): Promise<{ published: number; failed: number; }>; } //# sourceMappingURL=event-outbox-service.d.ts.map