import { Observable } from 'rxjs';
import { MessageType } from '../../constants';
import { IDisposable, RawMessage } from '../../types';
import type { IInboundMessageListenerFactory, IOutboundMessenger, IPortsFeature, IPortsFeatureFactory, IReplyParser } from '../../hub';
import type { IPortInformationRequestMessageFactory } from './i-port-information-request-message-factory';
import type { IPortModeInformationRequestMessageFactory } from './i-port-mode-information-request-message-factory';
import type { IPortInputFormatSetupMessageFactory } from '../i-port-input-format-setup-message-factory';
import type { IVirtualPortSetupMessageFactory } from './i-virtual-port-setup-message-factory';
export declare class PortsFeatureFactory implements IPortsFeatureFactory {
    private readonly portInformationRequestMessageFactory;
    private readonly messageListenerFactory;
    private readonly portInformationRequestReplyParser;
    private readonly attachedIoReplyParser;
    private readonly portInputFormatSetupSingleHandshakeReplyParser;
    private readonly portModeInformationMessageFactory;
    private readonly portInputFormatSetupSingleMessageFactory;
    private readonly portModeInformationReplyParserService;
    private readonly portRawValueReplyParser;
    private readonly virtualPortSetupMessageFactory;
    constructor(portInformationRequestMessageFactory: IPortInformationRequestMessageFactory, messageListenerFactory: IInboundMessageListenerFactory, portInformationRequestReplyParser: IReplyParser<MessageType.portInformation>, attachedIoReplyParser: IReplyParser<MessageType.attachedIO>, portInputFormatSetupSingleHandshakeReplyParser: IReplyParser<MessageType.portInputFormatSetupSingleHandshake>, portModeInformationMessageFactory: IPortModeInformationRequestMessageFactory, portInputFormatSetupSingleMessageFactory: IPortInputFormatSetupMessageFactory, portModeInformationReplyParserService: IReplyParser<MessageType.portModeInformation>, portRawValueReplyParser: IReplyParser<MessageType.portValueSingle>, virtualPortSetupMessageFactory: IVirtualPortSetupMessageFactory);
    create(characteristicDataStream: Observable<RawMessage<MessageType>>, onHubDisconnected: Observable<void>, messenger: IOutboundMessenger): IPortsFeature & IDisposable;
}
