///
///
declare global {
const VERSION: string;
const NIGHTLY: boolean;
const WINDOWS: boolean;
const LINUX: boolean;
interface Window {
$pinia: any;
$vr: any;
$debug: AppDebug;
AppApi: AppApi;
AppApiVr: AppApiVr;
WebApi: WebApi;
VRCXStorage: VRCXStorage;
SQLite: SQLite;
LogWatcher: LogWatcher;
Discord: Discord;
AssetBundleManager: AssetBundleManager;
webApiService: webApiService;
request: any;
utils: any;
dayjs: any;
configRepository: any;
database: any;
gameLogService: any;
crypto: any;
sqliteService: any;
interopApi: {
callDotNetMethod: (
className: any,
methodName: any,
args: any
) => Promise;
};
electron: {
getArch: () => Promise;
getClipboardText: () => Promise;
getNoUpdater: () => Promise;
setTrayIconNotification: (notify: boolean) => Promise;
openFileDialog: () => Promise;
openDirectoryDialog: () => Promise;
desktopNotification: (
displayName: string,
body?: string,
image?: string
) => Promise;
onWindowPositionChanged: (
Function: (
event: any,
position: { x: number; y: number }
) => void
) => void;
onWindowSizeChanged: (
Function: (
event: any,
size: { width: number; height: number }
) => void
) => void;
onWindowStateChange: (
Function: (event: any, state: { windowState: any }) => void
) => void;
onBrowserFocus: (Function: (event: any) => void) => void;
restartApp: () => Promise;
getOverlayWindow: () => Promise;
updateVr: (
active: bool,
hmdOverlay: bool,
wristOverlay: bool,
menuButton: bool,
overlayHand: int
) => Promise;
ipcRenderer: {
on(channel: String, func: (...args: unknown[]) => void);
};
};
}
interface AppDebug {
debug: boolean;
debugWebSocket: boolean;
debugUserDiff: boolean;
debugPhotonLogging: boolean;
debugGameLog: boolean;
debugWebRequests: boolean;
debugFriendState: boolean;
debugIPC: boolean;
debugVrcPlus: boolean;
errorNoty: any;
dontLogMeOut: boolean;
endpointDomain: string;
endpointDomainVrchat: string;
websocketDomain: string;
websocketDomainVrchat: string;
}
const CefSharp: {
PostMessage: (message: any) => void;
BindObjectAsync: (...args: string[]) => Promise;
BindObject: (name: string) => any;
ExecuteScriptAsync: (script: string) => Promise;
ExecuteScript: (script: string) => any;
RemoveObjectFromCache?: (name: string) => void;
DeleteBoundObject?: (name: string) => void;
};
const VRCXStorage: {
Get(key: string): Promise;
Set(key: string, value: string): Promise;
Remove(key: string): Promise;
GetAll(): Promise;
Flush(): Promise;
Save(): Promise;
Load(): Promise;
GetArray(key: string): Promise;
SetArray(key: string, value: any[]): Promise;
GetObject(key: string): Promise