import { Redis } from "ioredis";
import { RedisConnectionOptions } from "../data-stores/redis-data-store";
import { BuildCompleteSignal, MessageBroker } from "../../ports/message-broker";
export declare class RedisMessageBroker implements MessageBroker {
    private readonly client;
    constructor(client: Redis);
    waitForSignal(signalId: string, timeoutMs: number): Promise<BuildCompleteSignal>;
    publishSignal(signal: BuildCompleteSignal): Promise<void>;
    publishKeyDeleted(namespace: string, key: string): Promise<void>;
    onKeyDeleted(namespace: string, handle: (key: string) => void): Promise<void>;
    close(): Promise<void>;
}
export declare function createRedisMessageBroker(redisConnectionOptions: RedisConnectionOptions): RedisMessageBroker;
