import type { ProxyRoutingInvalidationEvent, ProxyRoutingInvalidationPublisher } from "./routing-invalidation.js"; type RedisListener = (message: string, channel: string) => void; export interface RoutingInvalidationRedisClient { connect(): Promise; publish(channel: string, message: string): Promise; subscribe(channel: string, listener: RedisListener): Promise; unsubscribe(channel: string): Promise; close(): Promise; destroy(): void; on?(event: "error", listener: (error: unknown) => void): unknown; } interface RoutingInvalidationLogger { info(message: string, extra?: Record): void; warn(message: string, extra?: Record): void; error(message: string, error?: Error, extra?: Record): void; } export interface ProxyRoutingInvalidationBus extends ProxyRoutingInvalidationPublisher { close(): Promise; } interface StartProxyRoutingInvalidationBusOptions { acknowledgementTimeoutMs?: number; createClient?: (redisUrl: string) => RoutingInvalidationRedisClient | Promise; expectedReplicas?: number; now?: () => number; logger?: RoutingInvalidationLogger; onInvalidate: (event: ProxyRoutingInvalidationEvent) => unknown | Promise; integritySecret?: string; redisUrl?: string; replicaId?: string; } export declare function startProxyRoutingInvalidationBus(options: StartProxyRoutingInvalidationBusOptions): Promise; export {}; //# sourceMappingURL=routing-invalidation-redis.d.ts.map