import { StreamMessage } from '@streamr/protocol';
import { MarkOptional } from 'ts-essentials';
import { DestroySignal } from '../DestroySignal';
import { GroupKeyManager } from '../encryption/GroupKeyManager';
import { StreamStorageRegistry } from '../registry/StreamStorageRegistry';
import { StreamRegistry } from '../registry/StreamRegistry';
import { LoggerFactory } from '../utils/LoggerFactory';
import { PushPipeline } from '../utils/PushPipeline';
import { Resends } from './Resends';
import { MessagePipelineOptions } from './messagePipeline';
type MessagePipelineFactoryOptions = MarkOptional<Omit<MessagePipelineOptions, 'resends' | 'groupKeyManager' | 'streamRegistry' | 'destroySignal' | 'loggerFactory'>, 'getStorageNodes' | 'config'>;
export declare class MessagePipelineFactory {
    private readonly resends;
    private readonly streamStorageRegistry;
    private readonly streamRegistry;
    private readonly groupKeyManager;
    private readonly config;
    private readonly destroySignal;
    private readonly loggerFactory;
    constructor(resends: Resends, streamStorageRegistry: StreamStorageRegistry, streamRegistry: StreamRegistry, groupKeyManager: GroupKeyManager, config: MessagePipelineOptions['config'], destroySignal: DestroySignal, loggerFactory: LoggerFactory);
    createMessagePipeline(opts: MessagePipelineFactoryOptions): PushPipeline<StreamMessage, StreamMessage>;
}
export {};
