Vencord/src/globals.d.ts

75 lines
2.4 KiB
TypeScript
Raw Normal View History

2022-10-21 23:17:06 +00:00
/*
* Vencord, a modification for Discord's desktop app
* Copyright (c) 2022 Vendicated and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import { LoDashStatic } from "lodash";
2022-10-26 11:54:23 +00:00
2022-08-29 00:25:27 +00:00
declare global {
/**
* This exists only at build time, so references to it in patches should insert it
* via String interpolation OR use different replacement code based on this
* but NEVER reference it inside the patched code
*
* @example
* // BAD
* replace: "IS_WEB?foo:bar"
* // GOOD
* replace: IS_WEB ? "foo" : "bar"
* // also good
* replace: `${IS_WEB}?foo:bar`
*/
export var IS_WEB: boolean;
export var IS_DEV: boolean;
export var IS_STANDALONE: boolean;
export var IS_DISCORD_DESKTOP: boolean;
export var IS_VENCORD_DESKTOP: boolean;
export var VERSION: string;
export var BUILD_TIMESTAMP: number;
2022-08-29 16:45:58 +00:00
export var VencordNative: typeof import("./VencordNative").default;
2022-08-29 18:27:47 +00:00
export var Vencord: typeof import("./Vencord");
export var VencordStyles: Map<string, {
name: string;
source: string;
classNames: Record<string, string>;
dom: HTMLStyleElement | null;
}>;
2022-08-29 16:11:44 +00:00
export var appSettings: {
set(setting: string, v: any): void;
};
/**
* Only available when running in Electron, undefined on web.
* Thus, avoid using this or only use it inside an {@link IS_WEB} guard.
*
* If you really must use it, mark your plugin as Desktop App only by naming it Foo.desktop.ts(x)
*/
2022-10-09 17:48:42 +00:00
export var DiscordNative: any;
export var VencordDesktop: any;
2023-04-09 02:04:02 +00:00
export var VencordDesktopNative: any;
2022-08-29 16:11:44 +00:00
2022-08-29 00:25:27 +00:00
interface Window {
2022-08-29 16:11:44 +00:00
webpackChunkdiscord_app: {
push(chunk: any): any;
2022-08-29 18:27:47 +00:00
pop(): any;
2022-08-29 16:11:44 +00:00
};
_: LoDashStatic;
[k: string]: any;
2022-08-29 00:25:27 +00:00
}
}
export { };