import type { RedisEventPublisherConfig, RedisEventPublisherImplementation } from "veryfront/extensions/distributed"; export type RedisEventListener = (message: string) => void; export interface RedisEventPublisherClient { readonly isOpen?: boolean; on(event: "error", listener: (error: unknown) => void): unknown; connect(): Promise; publish(channel: string, message: string): Promise; subscribe(channel: string, listener: RedisEventListener): Promise; unsubscribe(channel: string, listener: RedisEventListener): Promise; close(): Promise; } export type RedisEventPublisherClientFactory = (url: string) => RedisEventPublisherClient; export interface RedisEventPublisherLogger { info(message: string, ...args: unknown[]): void; error(message: string, ...args: unknown[]): void; } export interface RedisEventPublisherDependencies { readonly createClient: RedisEventPublisherClientFactory; readonly logger?: RedisEventPublisherLogger; } /** Construct a validated Redis Pub/Sub implementation. */ export declare function createRedisEventPublisher(config: RedisEventPublisherConfig, dependencies: RedisEventPublisherDependencies): RedisEventPublisherImplementation; //# sourceMappingURL=event-publisher.d.ts.map