@steambrew/client
Version:
A support library for creating plugins with Millennium.
338 lines (337 loc) • 11.6 kB
TypeScript
import { JsPbMessage, OperationResponse, Unregisterable } from '../../shared';
import { Device } from './Device';
export interface Network {
Device: Device;
ForceRefresh(): Promise<OperationResponse>;
ForceTestConnectivity(): void;
GetProxyInfo(): Promise<ProxyInfo>;
RegisterForAppSummaryUpdate(callback: (data: AppSummary) => void): Unregisterable;
/**
* If `state` is deserialized, returns {@link CGameNetworkingUI_ConnectionState}.
* @returns an object that can be used to unregister the callback.
*/
RegisterForConnectionStateUpdate(callback: (state: ArrayBuffer) => void): Unregisterable;
RegisterForConnectivityTestChanges(callback: (connectivityTest: ConnectivityTest) => void): Unregisterable;
/**
* If `data` is deserialized, returns {@link CMsgNetworkDevicesData}.
* @returns an object that can be used to unregister the callback.
*/
RegisterForDeviceChanges(callback: (data: ArrayBuffer) => void): Unregisterable;
SetFakeLocalSystemState(state: ENetFakeLocalSystemState): void;
SetProxyInfo(mode: number, address: string, port: number, excludeLocal: boolean): void;
SetWifiEnabled(value: boolean): Promise<OperationResponse>;
StartScanningForNetworks(): Promise<OperationResponse>;
StopScanningForNetworks(): Promise<OperationResponse>;
}
export interface ConnectivityTest {
eConnectivityTestResult: EConnectivityTestResult;
eFakeState: ENetFakeLocalSystemState;
bChecking: boolean;
}
export declare enum EConnectivityTestResult {
Unknown = 0,
Connected = 1,
CaptivePortal = 2,
TimedOut = 3,
Failed = 4,
WifiDisabled = 5,
NoLAN = 6
}
export interface ProxyInfo {
proxy_mode: number;
address: string;
port: number;
exclude_local: boolean;
}
interface AppSummary {
nAppID: number;
/**
* If deserialized, returns {@link CGameNetworkingUI_AppSummary}.
*/
serializedMessage: ArrayBuffer;
}
export declare enum ENetFakeLocalSystemState {
Normal = 0,
NoLAN = 1,
CaptivePortal_Redirected = 2,
CaptivePortal_InPlace = 3,
NoInternet = 4,
NoSteam = 5
}
export interface CMsgNetworkDevicesData extends JsPbMessage {
devices(): NetworkDevice[];
is_wifi_enabled(): boolean;
is_wifi_scanning_enabled(): boolean;
}
export interface CGameNetworkingUI_ConnectionSummary {
transport_kind?: number;
connection_state?: number;
sdrpop_local?: number;
sdrpop_remote?: number;
ping_ms?: number;
packet_loss?: number;
ping_default_internet_route?: number;
ip_was_shared?: number;
}
export interface CGameNetworkingUI_AppSummary {
appid?: number;
ip_was_shared_with_friend?: boolean;
ip_was_shared_with_nonfriend?: boolean;
active_connections?: number;
main_cxn?: CGameNetworkingUI_ConnectionSummary;
}
export interface SteamDatagramLinkInstantaneousStats {
out_packets_per_sec_x10: number | undefined;
out_bytes_per_sec: number | undefined;
in_packets_per_sec_x10: number | undefined;
in_bytes_per_sec: number | undefined;
ping_ms: number | undefined;
packets_dropped_pct: number | undefined;
packets_weird_sequence_pct: number | undefined;
peak_jitter_usec: number | undefined;
}
export interface SteamDatagramLinkLifetimeStats {
connected_seconds: number | undefined;
packets_sent: number | undefined;
kb_sent: number | undefined;
packets_recv: number | undefined;
kb_recv: number | undefined;
packets_recv_sequenced: number | undefined;
packets_recv_dropped: number | undefined;
packets_recv_out_of_order: number | undefined;
packets_recv_out_of_order_corrected: number | undefined;
packets_recv_duplicate: number | undefined;
packets_recv_lurch: number | undefined;
multipath_packets_recv_sequenced: number[];
multipath_packets_recv_later: number[];
multipath_send_enabled: number | undefined;
quality_histogram_100: number | undefined;
quality_histogram_99: number | undefined;
quality_histogram_97: number | undefined;
quality_histogram_95: number | undefined;
quality_histogram_90: number | undefined;
quality_histogram_75: number | undefined;
quality_histogram_50: number | undefined;
quality_histogram_1: number | undefined;
quality_histogram_dead: number | undefined;
quality_ntile_2nd: number | undefined;
quality_ntile_5th: number | undefined;
quality_ntile_25th: number | undefined;
quality_ntile_50th: number | undefined;
ping_histogram_25: number | undefined;
ping_histogram_50: number | undefined;
ping_histogram_75: number | undefined;
ping_histogram_100: number | undefined;
ping_histogram_125: number | undefined;
ping_histogram_150: number | undefined;
ping_histogram_200: number | undefined;
ping_histogram_300: number | undefined;
ping_histogram_max: number | undefined;
ping_ntile_5th: number | undefined;
ping_ntile_50th: number | undefined;
ping_ntile_75th: number | undefined;
ping_ntile_95th: number | undefined;
ping_ntile_98th: number | undefined;
jitter_histogram_negligible: number | undefined;
jitter_histogram_1: number | undefined;
jitter_histogram_2: number | undefined;
jitter_histogram_5: number | undefined;
jitter_histogram_10: number | undefined;
jitter_histogram_20: number | undefined;
txspeed_max: number | undefined;
txspeed_histogram_16: number | undefined;
txspeed_histogram_32: number | undefined;
txspeed_histogram_64: number | undefined;
txspeed_histogram_128: number | undefined;
txspeed_histogram_256: number | undefined;
txspeed_histogram_512: number | undefined;
txspeed_histogram_1024: number | undefined;
txspeed_histogram_max: number | undefined;
txspeed_ntile_5th: number | undefined;
txspeed_ntile_50th: number | undefined;
txspeed_ntile_75th: number | undefined;
txspeed_ntile_95th: number | undefined;
txspeed_ntile_98th: number | undefined;
rxspeed_max: number | undefined;
rxspeed_histogram_16: number | undefined;
rxspeed_histogram_32: number | undefined;
rxspeed_histogram_64: number | undefined;
rxspeed_histogram_128: number | undefined;
rxspeed_histogram_256: number | undefined;
rxspeed_histogram_512: number | undefined;
rxspeed_histogram_1024: number | undefined;
rxspeed_histogram_max: number | undefined;
rxspeed_ntile_5th: number | undefined;
rxspeed_ntile_50th: number | undefined;
rxspeed_ntile_75th: number | undefined;
rxspeed_ntile_95th: number | undefined;
rxspeed_ntile_98th: number | undefined;
}
export interface SteamDatagramConnectionQuality {
instantaneous: SteamDatagramLinkInstantaneousStats | undefined;
lifetime: SteamDatagramLinkLifetimeStats | undefined;
}
export interface SteamNetworkingICESessionSummary {
failure_reason_code: number | undefined;
local_candidate_types: number | undefined;
remote_candidate_types: number | undefined;
initial_route_kind: number | undefined;
initial_ping: number | undefined;
initial_score: number | undefined;
negotiation_ms: number | undefined;
best_route_kind: number | undefined;
best_ping: number | undefined;
best_score: number | undefined;
best_time: number | undefined;
selected_seconds: number | undefined;
user_settings: number | undefined;
ice_enable_var: number | undefined;
local_candidate_types_allowed: number | undefined;
}
export interface SteamNetworkingP2PSDRRoutingSummary {
initial_ping: number | undefined;
initial_ping_front_local: number | undefined;
initial_ping_front_remote: number | undefined;
initial_score: number | undefined;
initial_pop_local: number | undefined;
initial_pop_remote: number | undefined;
best_ping: number | undefined;
best_ping_front_local: number | undefined;
best_ping_front_remote: number | undefined;
best_score: number | undefined;
best_pop_local: number | undefined;
best_pop_remote: number | undefined;
best_time: number | undefined;
negotiation_ms: number | undefined;
selected_seconds: number | undefined;
}
export interface SteamDatagramP2PRoutingSummary {
ice: SteamNetworkingICESessionSummary | undefined;
sdr: SteamNetworkingP2PSDRRoutingSummary | undefined;
}
export interface CGameNetworkingUI_ConnectionState extends JsPbMessage {
connection_key(): string;
appid(): number;
connection_id_local(): number;
identity_local(): string;
identity_remote(): string;
connection_state(): number;
start_time(): number;
close_time(): number;
close_reason(): number;
close_message(): string;
status_loc_token(): string;
transport_kind(): number;
sdrpopid_local(): string;
sdrpopid_remote(): string;
address_remote(): string;
p2p_routing(): SteamDatagramP2PRoutingSummary;
ping_interior(): number;
ping_remote_front(): number;
ping_default_internet_route(): number;
e2e_quality_local(): SteamDatagramConnectionQuality;
e2e_quality_remote(): SteamDatagramConnectionQuality;
e2e_quality_remote_instantaneous_time(): string;
e2e_quality_remote_lifetime_time(): string;
front_quality_local(): SteamDatagramConnectionQuality;
front_quality_remote(): SteamDatagramConnectionQuality;
front_quality_remote_instantaneous_time(): string;
front_quality_remote_lifetime_time(): string;
}
export interface NetworkDevice_Wireless {
aps: WirelessAP[];
/**
* @remarks Not present if wired.
* @todo enum
*/
esecurity_supported?: number;
}
export interface WirelessAP {
esecurity: EWirelessSecurityFlags;
estrength: EWirelessEndpointStrength;
id: number;
is_active: boolean;
is_autoconnect: boolean;
password: string;
ssid: string;
strength_raw: number;
user_name?: string;
}
export declare enum EWirelessSecurityFlags {
None = 0,
StaticWep = 1,
DynamicWep = 2,
Wpa = 4,
WpaEnterprise = 8,
Wpa2 = 16,
Wpa2Enterprise = 32,
/**
* Special value to indicate that this platform does not support
* the security methods required to connect to an access point
*/
Unsupported = 32768
}
export interface NetworkDevice_Wired {
friendly_name: string;
is_cable_present: boolean;
speed_mbit: number;
}
export interface NetworkDevice {
estate: ENetworkDeviceState;
etype: ENetworkDeviceType;
id: number;
ipv4: {
addresses: NetworkDeviceIPv4Address[];
};
ipv6: {
addresses: NetworkDeviceIPv6Address[];
};
mac: string;
product: string;
vendor: string;
/**
* @remarks Present only if wired.
*/
wired?: NetworkDevice_Wired;
/**
* @remarks Present even if wired.
*/
wireless: NetworkDevice_Wireless;
}
export interface NetworkDeviceIPv4Address {
ip: number;
netmask: number;
}
export interface NetworkDeviceIPv6Address {
ip: string;
}
export interface NetworkDeviceIP {
dns_ip: number[];
gateway_ip: number;
is_default_route: boolean;
is_dhcp_enabled: boolean;
is_enabled: boolean;
}
export declare enum ENetworkDeviceState {
NotPresent = 0,
Failed = 1,
Disconnected = 2,
Disconnecting = 3,
Connecting = 4,
Connected = 5,
Retrying = 6
}
export declare enum ENetworkDeviceType {
Unknown = 0,
Wired = 1,
Wireless = 2,
Virtual = 3
}
export declare enum EWirelessEndpointStrength {
None = 0,
Weak = 1,
Ok = 2,
Good = 3,
Excellent = 4
}
export {};