diff --git a/p2ce/index.d.ts b/p2ce/index.d.ts
index 3b9c889..b389ce5 100644
--- a/p2ce/index.d.ts
+++ b/p2ce/index.d.ts
@@ -5,6 +5,7 @@
///
///
+///
declare namespace GameStateAPI {
/** Returns true if this is a playtest build of P2CE */
diff --git a/p2ce/saverestore.d.ts b/p2ce/saverestore.d.ts
new file mode 100644
index 0000000..965df3d
--- /dev/null
+++ b/p2ce/saverestore.d.ts
@@ -0,0 +1,38 @@
+
+/**
+ * Defines the save type, used with 'GameSaved' event in the 'type' parameter
+ */
+declare enum SaveType {
+ Manual = 0, /** User saved with custom filename */
+ Autosave, /** Game saved progress automatically */
+ Quicksave, /** User saved using the quicksave key */
+}
+
+interface Save {
+ name: string;
+ thumb: string;
+ time: number;
+}
+
+declare namespace SaveRestoreAPI {
+ /** Returns an array of save games */
+ function GetSaves(): Array;
+
+ /**
+ * Saves the game
+ * @param name Name of the save or null to generate one based on the current time
+ */
+ function SaveGame(name: string|null): void;
+
+ /**
+ * Deletes a save
+ * @param name Name of the save to delete
+ */
+ function DeleteSave(name: string): void;
+
+ /**
+ * Loads a save game
+ * @param name Name of the save. Allowed characters: A-z 0-9 _ -
+ */
+ function LoadGame(name: string): void;
+}
diff --git a/shared/events.d.ts b/shared/events.d.ts
index 2364a0d..bfc5642 100644
--- a/shared/events.d.ts
+++ b/shared/events.d.ts
@@ -88,4 +88,5 @@ interface GlobalEventNameMap {
'UnloadLoadingScreenAndReinit': () => void,
'AchievementInfoLoaded': () => void,
'AchievementEarned': (player_index: number, achievement_index: number) => void,
+ 'GameSaved': (save_name: string, save_type: number) => void,
}