import AbstractProcessor from '../AbstractProcessor';
import Subscription from './generic/subscription';
import type { EventHandler } from '../../types/Connection';
import type { WampMessage } from '../../types/Protocol';
import type { WampDict, WampList, WampURI } from '../../types/messages/MessageTypes';
import type { SubscribeOptions } from '../../types/messages/SubscribeMessage';
declare class Subscriber extends AbstractProcessor {
    static getFeatures(): WampDict;
    private _subscriptions;
    private _subscriptionRequests;
    private _unsubscriptionRequests;
    subscribe<A extends WampList, K extends WampDict>(topic: WampURI, handler: EventHandler<A, K>, options?: SubscribeOptions): Promise<Subscription>;
    private unsubscribe;
    protected onMessage(msg: WampMessage): boolean;
    protected onClose(): void;
}
export default Subscriber;
