import { Subject } from "rxjs";
import { IEventResult } from "./Event";
import { ProcessErrorArgs, ServiceBusError, ServiceBusReceivedMessage } from "@azure/service-bus";
import { ILogger } from "./ServiceBusPubSub";
export interface IMessageProcessor {
    /**
     *
     * @param subStream Rxjs channel based stream, each channel/client would have it's own stream pipeline.
     * @param message ServiceBusReceivedMessage
     */
    process(subStream: Subject<IEventResult>, message: ServiceBusReceivedMessage): Promise<void>;
    /**
     *
     * @param args ServiceBus ProcessErrorArgs
     *
     */
    onError(args: ProcessErrorArgs, handleError: (error: ServiceBusError) => Promise<void>): Promise<void>;
}
export declare class MessageProcessor implements IMessageProcessor {
    private logger;
    constructor(logger: ILogger);
    process(subject: Subject<IEventResult>, message: ServiceBusReceivedMessage): Promise<void>;
    onError(args: ProcessErrorArgs, handleError: (error: ServiceBusError) => Promise<void>): Promise<void>;
}
//# sourceMappingURL=MessageProcessor.d.ts.map