import type { LoggerService, Type } from '@nestjs/common';
import type { ConsumeMessage } from 'amqplib';
import type { AbstractPubsubAnyEventHandler, IHandlerWrapper } from '../interface';
import { IConsumerOptions } from '../interface';
import { Consumer } from './Consumer';
import { EventBus } from './EventBus';
import { PubSubReflector } from './PubSubReflector';
export declare class PubSubEventBinder {
    private readonly consumer;
    private readonly eventBus;
    private readonly reflector;
    private readonly consumerOptions;
    constructor(consumer: Consumer, eventBus: EventBus, reflector: PubSubReflector, consumerOptions: IConsumerOptions);
    registerPubSubEvents(handlers: Type<AbstractPubsubAnyEventHandler>[]): Promise<void>;
    protected bindPubSubConsumer(handlerWrapper: IHandlerWrapper): Promise<void>;
    protected emitPubSubEvent(handlerWrapper: IHandlerWrapper, message: ConsumeMessage): void;
    private filterValidHandlersWithEvents;
    protected logger(): LoggerService;
    private static checkTypeAgainstBinding;
}
