@steambrew/client
Version:
A support library for creating plugins with Millennium.
117 lines (116 loc) • 5 kB
TypeScript
import type { EBrowserType, ESteamRealm, EUIComposition, EUIMode, Unregisterable } from './shared';
export interface Overlay {
/**
* Destroys the gamepad UI desktop configurator window if open.
*/
DestroyGamePadUIDesktopConfiguratorWindow(): void;
GetOverlayBrowserInfo(): Promise<OverlayBrowserInfo[]>;
HandleGameWebCallback(url: string): void;
/**
* @param protocol Something like {@link OverlayBrowserProtocols.strScheme}
*/
HandleProtocolForOverlayBrowser(appId: number, protocol: string): void;
/**
* Registers a callback function to be called when an overlay is activated from an app.
* @param callback The callback function to be called.
* @returns an object that can be used to unregister the callback.
*/
RegisterForActivateOverlayRequests(callback: (request: ActivateOverlayRequest) => void): Unregisterable;
/**
* Registers a callback function to be called when a microtransaction authorization is requested.
* @param callback The callback function to be called.
* @returns an object that can be used to unregister the callback.
*/
RegisterForMicroTxnAuth(callback: (appId: number, microTxnId: string, realm: ESteamRealm, microTxnUrl: string) => void): Unregisterable;
/**
* Registers a callback function to be called when a microtransaction authorization is dismissed by the user in Steam's authorization page.
* @param callback The callback function to be called.
* @returns an object that can be used to unregister the callback.
*/
RegisterForMicroTxnAuthDismiss(callback: (appId: number, microTxnId: string) => void): Unregisterable;
RegisterForNotificationPositionChanged(callback: (appId: number, position: ENotificationPosition, horizontalInset: number, verticalInset: number) => void): Unregisterable;
/**
* Registers a callback function to be called when an overlay is activated or closed.
* @param callback The callback function to be called.
* @returns an object that can be used to unregister the callback.
*/
RegisterForOverlayActivated(callback: (overlayProcessPid: number, appId: number, active: boolean, param3: boolean) => void): Unregisterable;
/**
* Registers a callback function to be called when the overlay browser protocols change.
* @param callback The callback function to be called.
* @returns an object that can be used to unregister the callback.
*/
RegisterForOverlayBrowserProtocols(callback: (browseProtocols: OverlayBrowserProtocols) => void): Unregisterable;
/**
* Registers **the** callback function to be called when the overlay browser information changes.
* @param callback The callback function to be called when the overlay browser information changes.
* @returns an object that can be used to unregister the callback.
* @remarks Do Not Use, this will break the overlay unless you know what you are doing.
*/
RegisterOverlayBrowserInfoChanged(callback: () => void): Unregisterable;
SetOverlayState(appId: string, state: EUIComposition): void;
}
type OverlayRequestDialog_t = 'achievements' | 'asyncnotificationsrequested' | 'chat' | 'community' | 'friendadd' | 'friendremove' | 'friendrequestaccept' | 'friendrequestignore' | 'friendremove' | 'jointrade' | 'leaderboards' | 'lobbyinvite' | 'lobbyinviteconnectstring' | 'officialgamegroup' | 'requestplaytime' | 'remoteplaytogether' | 'remoteplaytogetherinvite' | 'settings' | 'stats' | 'steamid' | 'store';
export declare enum ENotificationPosition {
TopLeft = 0,
TopRight = 1,
BottomLeft = 2,
BottomRight = 3
}
export interface ActivateOverlayRequest {
/**
* The app ID that just had an overlay request.
*/
appid: number;
/**
* `true` if webpage, and so {@link strDialog} will start with `https://`.
*/
bWebPage: boolean;
eFlag: EOverlayToStoreFlag;
eWebPageMode: EActivateGameOverlayToWebPageMode;
/**
* Steam64 ID.
*/
steamidTarget: string;
/**
* Game invites string for `Friends.InviteUserToGame`.
*/
strConnectString: string;
/**
* Web page URL if starts with `https://`, so cast the type to `string` if it is.
*/
strDialog: OverlayRequestDialog_t;
/**
* App ID of the requesting game.
*/
unRequestingAppID: number;
}
export interface OverlayBrowserInfo {
appID: number;
eBrowserType: EBrowserType;
eUIMode: EUIMode;
flDisplayScale?: number;
gameID: string;
nBrowserID: number;
nScreenHeight: number;
nScreenWidth: number;
/**
* The PID of the overlay process.
*/
unPID: number;
}
export interface OverlayBrowserProtocols {
unAppID: number;
strScheme: string;
bAdded: boolean;
}
export declare enum EActivateGameOverlayToWebPageMode {
Default = 0,
Modal = 1
}
export declare enum EOverlayToStoreFlag {
None = 0,
AddToCart = 1,
AddToCartAndShow = 2
}
export {};