import PQueue from 'p-queue';
import type { DiagnosticsLogger } from '@ceramicnetwork/common';
import { Observable } from 'rxjs';
import type { Subscription } from 'rxjs';
import type { PubsubMessage } from './pubsub-message.js';
import type { ObservableWithNext } from './observable-with-next.js';
export declare class PubsubRateLimit extends Observable<PubsubMessage> implements ObservableWithNext<PubsubMessage> {
    private readonly pubsub;
    private readonly logger;
    private readonly queriesPerSecond;
    private readonly rateLimitWarningsIntervalMs;
    readonly queue: PQueue;
    readonly maxQueuedQueries: number;
    constructor(pubsub: ObservableWithNext<PubsubMessage>, logger: DiagnosticsLogger, queriesPerSecond: number, rateLimitWarningsIntervalMs?: number);
    next(message: PubsubMessage): Subscription;
}
//# sourceMappingURL=pubsub-ratelimit.d.ts.map