import { Observable } from 'rxjs';
import { FilledRxNostrConfig } from '../config/index.js';
import { EventPacket, LazyREQ } from '../packet.js';
import { AuthProxy } from './auth.js';
import { RelayConnection } from './relay.js';
export interface FinPacket {
    from: string;
    subId: string;
}
export declare class SubscribeProxy {
    private relay;
    private authProxy;
    private config;
    private subs;
    private authRequiredSubs;
    private fin$;
    private disposed;
    private queue;
    constructor(params: {
        relay: RelayConnection;
        authProxy: AuthProxy | null;
        config: FilledRxNostrConfig;
    });
    subscribe(req: LazyREQ, autoclose: boolean): void;
    unsubscribe(subId: string): void;
    isOngoingOrQueued(subId: string): boolean;
    getEventObservable(): Observable<EventPacket>;
    getFinObservable(): Observable<FinPacket>;
    getLogicalConnectionSizeObservable(): Observable<number>;
    dispose(): void;
    [Symbol.dispose](): void;
    private sendREQ;
    private sendCLOSE;
    private fin;
}
//# sourceMappingURL=subscribe.d.ts.map