diff --git a/index.d.ts b/index.d.ts
new file mode 100644
index 0000000..5b6a7cf
--- /dev/null
+++ b/index.d.ts
@@ -0,0 +1,110 @@
+///
+
+declare module "minecraft-launcher-core" {
+ type OS = "windows" | "osx" | "linux";
+ type Type = "release" | "snapshot";
+
+ interface IOverrides {
+ minArgs?: number;
+ minecraftJar?: string;
+ versionJson?: string;
+ directory?: string;
+ natives?: string;
+ assetRoot?: string;
+ libraryRoot?: string;
+ cwd?: string;
+ detached?: boolean;
+ classes?: Array;
+ maxSockets?: number;
+ url?: {
+ meta?: string;
+ resources?: string;
+ mavenForge?: string;
+ defaultRepoForge?: string;
+ fallbackMaven?: string;
+ };
+ }
+
+ interface ILauncherOptions {
+ clientPackage?: string;
+ removePackage?: boolean;
+ installed?: string;
+ root: string;
+ os?: OS;
+ customLaunchArgs?: Array;
+ customArgs?: Array;
+ version: {
+ number: string;
+ type: Type;
+ custom?: string;
+ };
+ memory: {
+ max: string;
+ min: string;
+ };
+ forge?: string;
+ javaPath?: string;
+ server?: {
+ host: string;
+ port: string;
+ };
+ proxy?: {
+ host: string;
+ port: string;
+ username?: string;
+ password?: string;
+ };
+ timeout?: number;
+ window?: {
+ width?: number;
+ height?: number;
+ };
+ overrides?: IOverrides;
+ authorization: Promise;
+ }
+
+ interface IUser {
+ access_token: string;
+ client_token: string;
+ uuid: string;
+ name: string;
+ user_properties: Partial;
+ }
+
+ interface IProfile {
+ id: number;
+ name: string;
+ }
+
+ interface IAuthenticator {
+ getAuth(username: string, password?: string): Promise;
+ validate(
+ access_token: string,
+ client_token: string
+ ): Promise>;
+ refreshAuth(
+ access_token: string,
+ client_token: string,
+ selectedProfile: IProfile
+ ): Promise;
+ invalidate(
+ access_token: string,
+ client_token: string
+ ): Promise>;
+ signOut(
+ username: string,
+ password: string
+ ): Promise>;
+ changeApiUrl(url: string): void;
+ }
+
+ import { EventEmitter } from 'events'
+ import { ChildProcessWithoutNullStreams } from 'child_process'
+
+ export class Client extends EventEmitter {
+ launch(options: ILauncherOptions): ChildProcessWithoutNullStreams | null;
+ }
+
+ export const Authenticator: IAuthenticator;
+ }
+
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 93917b9..fd2a9e6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -36,6 +36,12 @@
"integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
"dev": true
},
+ "@types/node": {
+ "version": "14.0.27",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz",
+ "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==",
+ "dev": true
+ },
"acorn": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
diff --git a/package.json b/package.json
index 633d877..a218825 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
"uuid": "^3.3.2"
},
"devDependencies": {
+ "@types/node": "^14.0.27",
"eslint": "^6.8.0",
"eslint-config-standard": "^14.1.1",
"eslint-plugin-import": "^2.20.2",