import { default as uws } from 'uWebSockets.js';
import { EventEmitter } from 'eventemitter3';
import { Server } from './server';
import { kClientError, kEncoding, kHead, kReadyState, kRemoteAdress, kRes, kServer, kTimeoutRef, kUwsRemoteAddress, kWriteOnly } from './symbols';
export declare class HTTPSocket extends EventEmitter {
    aborted: boolean;
    writableNeedDrain: boolean;
    bytesRead: number;
    bytesWritten: number;
    writableEnded: boolean;
    errored: any;
    [kServer]: Server;
    [kRes]: uws.HttpResponse;
    [kWriteOnly]: boolean;
    [kReadyState]: {
        read: boolean;
        write: boolean;
    };
    [kEncoding]: any;
    [kRemoteAdress]: any;
    [kUwsRemoteAddress]: any;
    [kHead]: any;
    [kClientError]: boolean;
    [kTimeoutRef]?: NodeJS.Timeout;
    constructor(server: Server, res: uws.HttpResponse, writeOnly: boolean);
    get readyState(): "readOnly" | "writeOnly" | "open" | "opening";
    get writable(): boolean;
    get readable(): boolean;
    get encrypted(): boolean;
    get remoteAddress(): any;
    get remoteFamily(): "IPv4" | "IPv6";
    get destroyed(): boolean;
    address(): any;
    abort(): void;
    setEncoding(encoding: any): void;
    destroy(err: any): void;
    onRead(cb: any): any;
    end(data: any, _: any, cb?: () => void): void;
    write(data: any, _: any, cb?: () => void): boolean | void;
    _clearTimeout(): void;
}
