/// <reference types="socket.io-client" />
import { OutgoingMessage } from "./outgoing-message";
import { IncomingMessage } from "./incoming-message";
import { PubbyStream } from "../lib/streams";
import { Pubby } from "../client";
interface IO extends SocketIOClient.Socket {
    onevent: any;
}
export declare class WsStream extends PubbyStream<OutgoingMessage, IncomingMessage> {
    private url;
    private pubby;
    io: IO;
    private syncTimer;
    private _timeOffset;
    /** Informa se o cliente foi desconectado, propositalmente, de maneira forçada */
    private forciblyDisconnected;
    constructor(url: string, pubby: Pubby);
    reconnect(): Promise<void>;
    connect(reconnect?: boolean): Promise<unknown>;
    add(data: OutgoingMessage, cb?: (err: Error, data: any) => void): this;
    asyncAdd(data: OutgoingMessage): Promise<unknown>;
    listen<T extends Function>(type: T): PubbyStream<any>;
    _write(message: OutgoingMessage, cb?: (err: Error, data: any) => void): void;
    get timeOffset(): number;
    get now(): number;
    private syncTime;
}
export {};
