import { ICallback } from '../async/index.js';
import { EventEmitter, TEventBusEvent } from '../event/index.js';
import { IRedisConfig, TRedisClientEvent } from '../redis-client/index.js';
import { IEventBus } from './types/index.js';
export declare class EventBusRedisFactory<Event extends TEventBusEvent> extends EventEmitter<Pick<TRedisClientEvent, 'error'>> {
    protected instance: IEventBus<Event> | null;
    protected locked: boolean;
    protected config: IRedisConfig;
    constructor(config: IRedisConfig);
    init: (cb: ICallback<void>) => void;
    getInstance(): IEventBus<Event> | Error;
    getSetInstance(cb: ICallback<IEventBus<Event>>): void;
    shutdown: (cb: ICallback<void>) => void;
}
//# sourceMappingURL=event-bus-redis-factory.d.ts.map