///
import { Proxy, SocketType, StreamEvent } from "../../types";
import Connect, { Callback, ConnectHeaders } from "../connect";
import { ISocket } from "../../stream";
import EventEmitter from "eventemitter3";
export default class FetchConnect extends Connect {
constructor();
connect({ host, port, sessionId }: ConnectHeaders, proxy: Proxy | undefined, callback: Callback): void;
}
export type XHRRequest = {
host: string;
port: number;
url?: string;
init?: {
method: string;
headers: {
[key: string]: any;
};
body?: ReadableStream | undefined;
};
[key: string]: any;
};
/**
* 使用xhr方式通信
*/
export declare class FetchSocket extends EventEmitter implements ISocket {
private writeableStream;
private readableStream;
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 canBody;
private init;
connect(options: XHRRequest, //
callback: (socket: ISocket) => void): this;
write(chunk: Buffer): boolean;
end(chunk?: Buffer): void;
read(ttl?: number): Promise;
pipe(socket: ISocket): ISocket;
destroy(error?: Error): void;
close(err?: Error): void;
}