import { Observable } from 'rxjs';
import type { GenericErrorInboundMessage, ILogger, RawMessage } from '../../types';
import { MessageType } from '../../constants';
import type { IInboundMessageListenerFactory, IOutboundMessenger, IOutboundMessengerFactory, IReplyParser, OutboundMessengerConfig } from '../../hub';
import { TaskVisitorFactory } from './task-visitor';
import { TaskQueueFactoryFactory } from './queue';
import type { IChannelFactory } from './i-channel-factory';
export declare class OutboundMessengerFactory implements IOutboundMessengerFactory {
    private readonly messageListenerFactory;
    private readonly feedbackIReplyParser;
    private readonly channelFactory;
    private readonly linuxChromeChannelFactory;
    private readonly taskQueueFactoryFactory;
    private readonly feedbackHandlerFactory;
    constructor(messageListenerFactory: IInboundMessageListenerFactory, feedbackIReplyParser: IReplyParser<MessageType.portOutputCommandFeedback>, channelFactory: IChannelFactory, linuxChromeChannelFactory: IChannelFactory, taskQueueFactoryFactory: TaskQueueFactoryFactory, feedbackHandlerFactory: TaskVisitorFactory);
    create(characteristicDataStream: Observable<RawMessage<MessageType>>, genericErrorsStream: Observable<GenericErrorInboundMessage>, characteristic: BluetoothRemoteGATTCharacteristic, onDisconnected$: Observable<void>, logger: ILogger, config: OutboundMessengerConfig): IOutboundMessenger;
}
