///
import { Proxy, SocketType, StreamEvent } from "../../types";
import Connect, { Callback, ConnectHeaders } from "../connect";
import { ISocket } from "../../stream";
import EventEmitter from "eventemitter3";
export default class WSConnect extends Connect {
constructor();
connect({ host, port, sessionId }: ConnectHeaders, proxy: Proxy | undefined, callback: Callback): void;
}
type WSStreamEvent = StreamEvent & {
open: () => void;
};
/**
* 使用xhr方式通信ss
*/
export declare class WSSocket extends EventEmitter implements ISocket {
private socket;
private readonly _id;
private _fetchHeader;
private _destroyed;
private headers;
private protocol;
constructor();
get readyState(): "open" | "closed";
isPaused(): boolean;
type: SocketType;
sessionId: string;
get writable(): boolean;
get readable(): boolean;
get remoteAddress(): string;
get remotePort(): number;
get localAddress(): string;
get localPort(): number;
get destroyed(): boolean;
get id(): string;
get readableLength(): number;
get writableLength(): number;
pause(): void;
resume(): void;
setKeepAlive(enable: boolean, initialDelay: number): void;
private init;
connect(options: {
url: string;
headers: {
[key: string]: any;
};
}): this;
destroy(error?: Error): void;
close(err?: Error): void;
read(ttl: number): Promise;
write(chunk: string | Buffer, ...args: any[]): boolean;
end(chunk?: string | Buffer | undefined, ...args: any[]): void;
pipe(socket: ISocket): ISocket;
}
export {};