import { Socket } from 'socket.io-client';
import { SubcriptionsClient, SubscriptionsClientV2Events, SubscriptionsClientV2ServerEvents, AcknowledgeCb, OnDataReceive, OnConnectionChange } from './types';
export declare class SubscriptionsClientV2 implements SubcriptionsClient {
    private readonly _socket;
    constructor(_socket: Socket<SubscriptionsClientV2Events, SubscriptionsClientV2ServerEvents>);
    subscribe<T>(channel: string, onData: OnDataReceive<T>, ack?: AcknowledgeCb): () => void;
    unsubscribe<T>(channel: string, onData: OnDataReceive<T>, ack?: AcknowledgeCb): void;
    disconnect(): this;
    onConnectionChange: (handler: OnConnectionChange) => () => void;
    private _validateArgs;
    private _shouldEmitToServer;
    private _emit;
}
//# sourceMappingURL=subscriptions-client.d.ts.map