///
///
import { AcceptSocket } from "./types";
import { isNode, isBrowser } from "./adapter/types";
export declare const DefaultSecret = "lOfGpnn7nZ7KODmxUckw4GhMY95vA/LvlnMcbjNZ9hapILXX20KAClDxB8QjCUElRHfZhrgnf+2FR7kAv6P4TqTqDnLfIV1kanCsRYfVoMA+VhvhwRH0H4QENna0r6qoL/P9dQ27gQv56XE90MuXW4rYWj9pT+Oy6y7uOknH0whiUqGMlbboKn3RX40okGZD0o/DehOzXCTM+s9+98XOpwE0mWcY3CySHhUSpUbNK65IbOwy5mBLV0B8LcgF8IMaazd7bQ9UeGWO1rerKR0MnNpVF7qCIrDdAlhKnzuJ/rxNBnQUNRnkEJuIMf/1mjxemK29ovzivpFT5cKT1CaLYQ==";
import { ConnectOptions, ProtocolType } from "./connect/types";
import { net } from "./adapter";
import { Peer } from "./stream";
export * from "./stream/types";
export { ConnectOptions, ProtocolType, isBrowser, isNode };
export type AuthData = {
checked: boolean;
username: string;
password: string;
session: string;
clientIp: string;
type: "connect" | "accept";
protocol: string;
args: any[];
};
export type AcceptData = {
socket: AcceptSocket;
protocol: string;
};
/**
* 接收器配置参数
*/
export type AcceptOptions = {
/** 密钥 */
/** 是否接入,默认true */
isAccept?: boolean;
/** 验证用户信息,用户名和密码 */
auth?: AcceptAuthData;
/** 是否直接连接目标服务, 代理终点 */
isDirect?: boolean;
/** 是否启用udp,默认false */
enableUDP?: boolean;
/** 是否启用peer server */
enablePeerServer?: boolean;
/** 是否启用peer turn服务,默认false */
enablePeerTurn?: boolean;
secret?: string;
/** 注入统计 */
stats?: (data: {
[key: string]: any;
}) => void;
};
export type LoggerLevel = "info" | "debug" | "warn" | "error" | "close" | "trace";
/**
* 默认实例入口配置参数
*/
export type Options = AcceptOptions & ConnectOptions & {
loggerLevel?: LoggerLevel;
[key: string]: any;
};
/**
* accept用户信息验证
*/
export type AcceptAuthData = (data: {
username: string;
password: string;
protocol: ProtocolType;
args: string[];
session: string;
clientIp: string;
}) => Promise;
/**
* 代理模式
* 0=session模式, 1=随机ip模式, 2=固定模式(未实现)
*/
export declare enum ProxyMode {
/**
* session模式,一段时间内ip稳定
*/
session = 0,
/**
* 随机模式,每次请求变更ip
*/
random = 1
}
export interface Proxy {
/** 协议 */
protocol: ProtocolType;
/** 主机 */
host: string;
/** 端口 */
port: number;
/** 用户名 */
username?: string;
/** 密码 */
password?: string;
/** 是否启用安全协议连接, 只有小部分连接有用(ws.connect) */
ssl?: boolean;
chain?: Proxy;
middle?: {
host: string;
port: number;
username?: string;
password?: string;
};
forward?: {
host: string;
port: number;
username?: string;
password?: string;
};
/** 代理密钥 */
secret?: string | Buffer;
/** 代理检测好坏,内部使用 */
/** 使用模式 0=session模式, 1=随机ip模式, 2=固定模式(未实现) */
mode?: ProxyMode;
}
/**
* 连接用户信息
*/
export interface ConnectUser {
username: string;
password: string;
args: string[];
}
/** 创建服务回调 */
export type CreateCallback = (server: net.Server | Peer) => void;
/**创建本地服务回调 */