@steambrew/client
Version:
A support library for creating plugins with Millennium.
74 lines (73 loc) • 2.36 kB
TypeScript
import { EUIMode, Unregisterable } from './shared';
import { EOSType } from './system';
export interface UI {
EnsureMainWindowCreated(): void;
ExitBigPictureMode(): void;
GetDesiredSteamUIWindows(): Promise<SteamWindow[]>;
/**
* Gets information about whether your OS will be unsupported in the future or not.
*/
GetOSEndOfLifeInfo(): Promise<OSEndOfLifeInfo>;
/**
* Retrieves the current UI mode.
* @returns the current UI mode.
*/
GetUIMode(): Promise<EUIMode>;
NotifyAppInitialized(): void;
RegisterDesiredSteamUIWindowsChanged(callback: () => void): Unregisterable;
/**
* Registers a callback function to be called when a convar's value gets changed.
*
* Hard crashes if such a convar does not exist or if you can't set it.
*
* @param convar The ConVar to watch.
* @param callback The callback function to be called.
*/
RegisterForClientConVar(convar: string, callback: (value: string) => void): Unregisterable;
/**
* @todo param{0,1} are enums
*/
RegisterForErrorCondition(callback: (param0: number, param1: number) => void): Unregisterable;
RegisterForKioskModeResetSignal(callback: () => void): Unregisterable;
/**
* @todo This fires multiple times.
*/
RegisterForStartupFinished(callback: () => void): Unregisterable;
RegisterForUIModeChanged(callback: (mode: EUIMode) => void): Unregisterable;
ResetErrorCondition(): void;
/**
* Sets the UI mode to the specified value.
* @param mode The UI mode to set.
*/
SetUIMode(mode: EUIMode): void;
}
export declare enum EWindowType {
MainGamepadUI = 0,
OverlayGamepadUI = 1,
Keyboard = 2,
ControllerConfigurator = 3,
VR = 4,
MainDesktopUI = 5,
DesktopLogin = 6,
OverlayDesktopUI = 7,
SteamChinaReviewLauncher = 8
}
export interface OSEndOfLifeInfo {
bOSWillBeUnsupported: boolean;
osType: EOSType;
}
/**
* The following might have more correct information:
* https://github.com/SteamDatabase/SteamTracking/blob/master/Protobufs/webuimessages_sharedjscontext.proto
*/
export interface SteamWindow {
appid: number;
hwndParent: number;
nBrowserID: number;
strAppName: string;
unID: number;
unPID: number;
windowType: EWindowType;
x: number;
y: number;
}