import type { SessionStore } from '../session-store.interface.js'; import type { Session } from '../../types/session.js'; import type { ReplicationConfig } from './types.js'; import type { Logger } from 'pino'; import { ReplicationMetrics } from './replication-metrics.js'; import { EventEmitter } from 'events'; export declare class ReplicationCoordinator extends EventEmitter { private readonly logger; private readonly transport; private readonly metrics; private readonly config; constructor(config: ReplicationConfig, logger: Logger); replicateCreate(session: Session, replicaIds: string[], getReplica: (id: string) => { store: SessionStore; isActive: boolean; } | undefined): Promise; replicateUpdate(session: Session, replicaIds: string[], getReplica: (id: string) => { store: SessionStore; isActive: boolean; } | undefined): Promise; replicateDelete(sessionId: string, replicaIds: string[], getReplica: (id: string) => { store: SessionStore; isActive: boolean; } | undefined): Promise; replicateTouch(sessionId: string, replicaIds: string[], getReplica: (id: string) => { store: SessionStore; isActive: boolean; } | undefined): Promise; private replicateOperation; private handleReplicaError; getMetrics(): ReturnType; clearMetrics(): void; } //# sourceMappingURL=replication-coordinator.d.ts.map