import type { Socket } from 'node:net';
export declare class SeyfertWebSocket {
    #private;
    socket?: Socket;
    hostname: string;
    path: string;
    __stored: Buffer[];
    __opcode: number;
    __promises: Map<string, {
        resolve: () => void;
        reject: (reason?: any) => void;
    }>;
    __lastError: null | {
        code: number;
        reason: string;
    };
    __closeCalled?: boolean;
    constructor(url: string);
    private connect;
    handleReadable(): void;
    handleEvent(body: Buffer, opcode: number): void;
    handleClose(): Promise<void>;
    send(data: string): void;
    private _write;
    onping(_data: string): void;
    onpong(_data: string): void;
    onopen(): void;
    onmessage(_payload: {
        data: string | Buffer;
    }): void;
    onclose(_close: {
        code: number;
        reason: string;
    }): void;
    onerror(_err: unknown): void;
    close(code: number, reason: string): void;
    pong(data: string): void;
    ping(data: string): void;
    waitPing(): Promise<number>;
    get readyState(): number;
    /**
     *
     * @param start Start calculating bytes from `start`
     * @param bits Num of bits since `start`
     * @returns
     */
    private readBytes;
}
export type ReadableHeadData = {
    next?: ReadableHeadData;
    data: Buffer;
};
