///
///
import "./global";
export * from "./stream";
import Accept from "./accept/accept";
import LightAccept from "./accept/light.accept";
import Socks5Accept from "./accept/socks5.accept";
import HttpAccept from "./accept/http.accept";
import AigoAccept from "./accept/aigo.accept";
import Connect, { Callback } from "./connect/connect";
import LightConnect from "./connect/light.connect";
import Socks5Connect from "./connect/socks5.connect";
import HttpConnect from "./connect/http.connect";
import AigoConnect from "./connect/aigo.connect";
import DirectConnect from "./connect/direct/direct.connect";
import WSConnect from "./connect/ws.connect";
import ForwardHttpConnect from "./connect/forward.http.connect";
import AcceptFactor from "./accept";
import ConnectFactor, { RequestData } from "./connect";
import { Callback as ConnectCallback } from "./connect/connect";
import { Proxy, CreateCallback, Options, AcceptData, AuthData, StreamTransport, PeerOptions } from "./types";
import * as adapter from "./adapter";
import EventEmitter from "eventemitter3";
import Cipher from "./core/cipher";
import * as address from "./stream/utils/address";
import * as check from "./utils/check";
import ua from "./utils/ua";
import * as password from "./core/password";
import logger from "./core/logger";
import Peer from "./stream/peer/peer";
import WsAccept from "./accept/ws.accept";
export { logger };
import { RequestInfo, RequestInit, net, Agent, Response } from "./adapter";
import TransformSocket from "./stream/transform.socket";
export { Request, RequestInit, RequestInfo, fetch, WebSocket, Response } from "./adapter";
export { Buffer } from "buffer";
export type EventName = StreamTransport & {
request: (data: RequestData) => void;
auth: (data: AuthData) => void;
accept: (data: AcceptData) => void;
error: (err: Error) => void;
open: () => void;
};
export * from "./stream";
export { IPipe, password, Accept, Connect, AigoConnect, AigoAccept, LightAccept, Socks5Accept, HttpAccept, //
LightConnect, Socks5Connect, HttpConnect, ForwardHttpConnect, DirectConnect, WSConnect, Cipher, check, ua, address, ConnectCallback, EventEmitter, adapter, };
/**
* 本地代理服务
*/
export default class IPipe extends EventEmitter {
private readonly options?;
static Accept: {
LightAccept: typeof LightAccept;
Socks5Accept: typeof Socks5Accept;
HttpAccept: typeof HttpAccept;
Accept: typeof Accept;
AigoAccept: typeof AigoAccept;
WsAccept: typeof WsAccept;
};
static Connect: {
LightConnect: typeof LightConnect;
Socks5Connect: typeof Socks5Connect;
HttpConnect: typeof HttpConnect;
DirectConnect: typeof DirectConnect;
Connect: typeof Connect;
AigoConnect: typeof AigoConnect;
};
connectFactor: ConnectFactor;
acceptFactor: AcceptFactor;
constructor(options?: Options | undefined);
close(): void;
setTimeout(timeout?: number): void;
get peer(): string;
/**
* 创建镜像服务(只支持http/https请求镜像,需要把目标域名配置到hosts文件 指定到运行主机ip, 如: 127.0.0.1 hub.docker.io)
* @param port
* @param host
* @param callback
* @returns
*/
createAcceptImageServer(port?: number, host?: string, callback?: CreateCallback): Promise;
/**
* 创建连接接入服务
* @param port 代理端口, 默认4321
* @param host 代理ip, 默认0.0.0.0,代表所有ip都可以访问
*/
createAcceptServer(port?: number, host?: string, callback?: CreateCallback): Promise;
createPeerAcceptServer(peerOptions: PeerOptions, callback?: (peer: Peer) => void): Promise;
/**
* 注册本地接自定义接入协议, 原生支持http和socks5代理协议
* 协议继承类Accept
* @param accept
*/
registerAccept(accept: Accept): this;
/**
* 注册连接远程代理服务器自定义协议, 原生支持http,socks5协议,forward.http http转发协议
* 协议继承类 Connect
* @param connect
*/
registerConnect(connect: Connect): this;
/**
* 注册远程代理服务器信息
* @param proxy
*/
registerProxy(proxy: Proxy): boolean;
/**
* 获取所有代理列表
*/
getProxys(): Proxy[];
/**
* 注册直接连接的域名, 无需走代理
* @param domain
*/
registerDirectDomain(domain: string): this;
websocket(url: string, agent: Agent): TransformSocket;
connect({ host, port }: {
host: string;
port: number;
}, agent: Agent, callback: Callback): void;
fetch(input: RequestInfo, init?: RequestInit): Promise;
private connectByAigo;
}