import { Observable } from 'rxjs';
import type { IpfsApi } from '@ceramicnetwork/common';
import { DiagnosticsLogger, ServiceLogger } from '@ceramicnetwork/common';
import { MonoTypeOperatorFunction } from 'rxjs';
import { TaskQueue } from '../ancillary/task-queue.js';
import type { SignedMessage, Message } from '@libp2p/interface-pubsub';
export declare class PubsubIncoming extends Observable<Message> {
    readonly ipfs: IpfsApi;
    readonly topic: string;
    readonly pubsubLogger: ServiceLogger;
    readonly logger: DiagnosticsLogger;
    readonly tasks: TaskQueue;
    constructor(ipfs: IpfsApi, topic: string, pubsubLogger: ServiceLogger, logger: DiagnosticsLogger, tasks: TaskQueue);
}
export declare class IncomingChannel extends Observable<Message> {
    readonly ipfs: IpfsApi;
    readonly topic: string;
    readonly resubscribeEvery: number;
    readonly lateMessageAfter: number;
    readonly pubsubLogger: ServiceLogger;
    readonly logger: DiagnosticsLogger;
    readonly tasks: TaskQueue;
    constructor(ipfs: IpfsApi, topic: string, resubscribeEvery: number, lateMessageAfter: number, pubsubLogger: ServiceLogger, logger: DiagnosticsLogger, tasks?: TaskQueue);
}
export declare function filterExternal(ownPeerId$: Observable<string>): MonoTypeOperatorFunction<SignedMessage>;
export declare function checkSlowObservable(delay: number, logger: DiagnosticsLogger, description: string): MonoTypeOperatorFunction<Message>;
//# sourceMappingURL=incoming-channel.d.ts.map