import { NatsConnection } from "nats";
import { BuildCompleteSignal, MessageBroker } from "../../ports/message-broker";
export declare class JetstreamMessageBroker implements MessageBroker {
    private readonly client;
    private readonly stream;
    constructor(client: NatsConnection, stream: string);
    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 class NatsConnectionOptions {
    urls: string[];
    stream: string;
    token?: string;
    userPass?: {
        user: string;
        pass: string;
    };
}
export declare function createJetstreamMessageBroker(natsConnectionOptions: NatsConnectionOptions): Promise<JetstreamMessageBroker>;
