diff --git a/markdown/bitburner.failureresult.md b/markdown/bitburner.failureresult.md
new file mode 100644
index 000000000..07149d10e
--- /dev/null
+++ b/markdown/bitburner.failureresult.md
@@ -0,0 +1,12 @@
+
+
+[Home](./index.md) > [bitburner](./bitburner.md) > [FailureResult](./bitburner.failureresult.md)
+
+## FailureResult type
+
+
+**Signature:**
+
+```typescript
+type FailureResult = { success: false; message: string };
+```
diff --git a/markdown/bitburner.md b/markdown/bitburner.md
index 63a02910b..4fc8fff36 100644
--- a/markdown/bitburner.md
+++ b/markdown/bitburner.md
@@ -1803,6 +1803,16 @@ Warning: Spoiler ahead. This enum contains names of \*\*all\*\* factions. If you
+
+
|
diff --git a/markdown/bitburner.result.md b/markdown/bitburner.result.md
new file mode 100644
index 000000000..bae2fd6d0
--- /dev/null
+++ b/markdown/bitburner.result.md
@@ -0,0 +1,14 @@
+
+
+[Home](./index.md) > [bitburner](./bitburner.md) > [Result](./bitburner.result.md)
+
+## Result type
+
+
+**Signature:**
+
+```typescript
+type Result = SuccessResult | FailureResult;
+```
+**References:** [SuccessResult](./bitburner.successresult.md), [FailureResult](./bitburner.failureresult.md)
+
diff --git a/markdown/bitburner.successresult.md b/markdown/bitburner.successresult.md
new file mode 100644
index 000000000..d8f7018f1
--- /dev/null
+++ b/markdown/bitburner.successresult.md
@@ -0,0 +1,12 @@
+
+
+[Home](./index.md) > [bitburner](./bitburner.md) > [SuccessResult](./bitburner.successresult.md)
+
+## SuccessResult type
+
+
+**Signature:**
+
+```typescript
+type SuccessResult = { success: true; message?: string } & T;
+```
diff --git a/src/CodingContract/Contract.ts b/src/CodingContract/Contract.ts
index 4fd525dad..a2f384561 100644
--- a/src/CodingContract/Contract.ts
+++ b/src/CodingContract/Contract.ts
@@ -4,7 +4,7 @@ import { CodingContractTypes } from "./ContractTypes";
import { Generic_fromJSON, Generic_toJSON, IReviverValue, constructorsForReviver } from "../utils/JSONReviver";
import { ContractFilePath, resolveContractFilePath } from "../Paths/ContractFilePath";
import { assertObject } from "../utils/TypeAssertion";
-import { Result } from "../types";
+import type { Result } from "@nsdefs";
import { CodingContractEventEmitter } from "./CodingContractEventEmitter";
// Numeric enum
diff --git a/src/Corporation/Actions.ts b/src/Corporation/Actions.ts
index 368535b9a..cae2faa34 100644
--- a/src/Corporation/Actions.ts
+++ b/src/Corporation/Actions.ts
@@ -1,5 +1,5 @@
import { Player } from "@player";
-import { CorpResearchName, CorpSmartSupplyOption } from "@nsdefs";
+import type { CorpResearchName, CorpSmartSupplyOption, Result } from "@nsdefs";
import { MaterialInfo } from "./MaterialInfo";
import { Corporation } from "./Corporation";
@@ -25,7 +25,7 @@ import {
canCreateCorporation,
convertCreatingCorporationCheckResultToMessage,
} from "./helpers";
-import { PositiveInteger, Result } from "../types";
+import type { PositiveInteger } from "../types";
import { Factions } from "../Faction/Factions";
import { throwIfReachable } from "../utils/helpers/throwIfReachable";
import { formatMoney, formatNumber } from "../ui/formatNumber";
diff --git a/src/Corporation/Corporation.ts b/src/Corporation/Corporation.ts
index 32c17f086..0cfbc4018 100644
--- a/src/Corporation/Corporation.ts
+++ b/src/Corporation/Corporation.ts
@@ -1,6 +1,6 @@
import type { PromisePair } from "../Types/Promises";
import { Player } from "@player";
-import { CorpStateName, InvestmentOffer } from "@nsdefs";
+import type { CorpStateName, InvestmentOffer, Result } from "@nsdefs";
import { CorpUnlockName, CorpUpgradeName, LiteratureName } from "@enums";
import { CorporationState } from "./CorporationState";
import { CorpUnlocks } from "./data/CorporationUnlocks";
@@ -17,7 +17,7 @@ import { dialogBoxCreate } from "../ui/React/DialogBox";
import { constructorsForReviver, Generic_toJSON, Generic_fromJSON, IReviverValue } from "../utils/JSONReviver";
import { JSONMap, JSONSet } from "../Types/Jsonable";
import { formatMoney } from "../ui/formatNumber";
-import { isPositiveInteger, type Result } from "../types";
+import { isPositiveInteger } from "../types";
import { createEnumKeyedRecord, getRecordValues } from "../Types/Record";
import { getKeyList } from "../utils/helpers/getKeyList";
import { assertObject } from "../utils/TypeAssertion";
diff --git a/src/CotMG/Helper.tsx b/src/CotMG/Helper.tsx
index 25c0aadc7..4a325ca5c 100644
--- a/src/CotMG/Helper.tsx
+++ b/src/CotMG/Helper.tsx
@@ -5,7 +5,7 @@ import { Reviver } from "../utils/GenericReviver";
import { BaseGift } from "./BaseGift";
import { StaneksGift } from "./StaneksGift";
-import { Result } from "../types";
+import type { Result } from "@nsdefs";
import { isStanekGiftImplemented } from "../utils/ErrorHelper";
export let staneksGift = new StaneksGift();
diff --git a/src/Documentation/pages.ts b/src/Documentation/pages.ts
index b14eca0ff..20e4b25f4 100644
--- a/src/Documentation/pages.ts
+++ b/src/Documentation/pages.ts
@@ -458,6 +458,7 @@ import nsDoc_bitburner_factionworktask_factionworktype_md from "../../markdown/b
import nsDoc_bitburner_factionworktask_md from "../../markdown/bitburner.factionworktask.md?raw";
import nsDoc_bitburner_factionworktask_type_md from "../../markdown/bitburner.factionworktask.type.md?raw";
import nsDoc_bitburner_factionworktype_md from "../../markdown/bitburner.factionworktype.md?raw";
+import nsDoc_bitburner_failureresult_md from "../../markdown/bitburner.failureresult.md?raw";
import nsDoc_bitburner_filemetadata_atime_md from "../../markdown/bitburner.filemetadata.atime.md?raw";
import nsDoc_bitburner_filemetadata_btime_md from "../../markdown/bitburner.filemetadata.btime.md?raw";
import nsDoc_bitburner_filemetadata_md from "../../markdown/bitburner.filemetadata.md?raw";
@@ -1151,6 +1152,7 @@ import nsDoc_bitburner_resetinfo_lastnodereset_md from "../../markdown/bitburner
import nsDoc_bitburner_resetinfo_md from "../../markdown/bitburner.resetinfo.md?raw";
import nsDoc_bitburner_resetinfo_ownedaugs_md from "../../markdown/bitburner.resetinfo.ownedaugs.md?raw";
import nsDoc_bitburner_resetinfo_ownedsf_md from "../../markdown/bitburner.resetinfo.ownedsf.md?raw";
+import nsDoc_bitburner_result_md from "../../markdown/bitburner.result.md?raw";
import nsDoc_bitburner_runningscript_args_md from "../../markdown/bitburner.runningscript.args.md?raw";
import nsDoc_bitburner_runningscript_dynamicramusage_md from "../../markdown/bitburner.runningscript.dynamicramusage.md?raw";
import nsDoc_bitburner_runningscript_filename_md from "../../markdown/bitburner.runningscript.filename.md?raw";
@@ -1388,6 +1390,7 @@ import nsDoc_bitburner_studytask_classtype_md from "../../markdown/bitburner.stu
import nsDoc_bitburner_studytask_location_md from "../../markdown/bitburner.studytask.location.md?raw";
import nsDoc_bitburner_studytask_md from "../../markdown/bitburner.studytask.md?raw";
import nsDoc_bitburner_studytask_type_md from "../../markdown/bitburner.studytask.type.md?raw";
+import nsDoc_bitburner_successresult_md from "../../markdown/bitburner.successresult.md?raw";
import nsDoc_bitburner_tailproperties_fontsize_md from "../../markdown/bitburner.tailproperties.fontsize.md?raw";
import nsDoc_bitburner_tailproperties_height_md from "../../markdown/bitburner.tailproperties.height.md?raw";
import nsDoc_bitburner_tailproperties_md from "../../markdown/bitburner.tailproperties.md?raw";
@@ -1968,6 +1971,7 @@ AllPages["nsDoc/bitburner.factionworktask.factionworktype.md"] = nsDoc_bitburner
AllPages["nsDoc/bitburner.factionworktask.md"] = nsDoc_bitburner_factionworktask_md;
AllPages["nsDoc/bitburner.factionworktask.type.md"] = nsDoc_bitburner_factionworktask_type_md;
AllPages["nsDoc/bitburner.factionworktype.md"] = nsDoc_bitburner_factionworktype_md;
+AllPages["nsDoc/bitburner.failureresult.md"] = nsDoc_bitburner_failureresult_md;
AllPages["nsDoc/bitburner.filemetadata.atime.md"] = nsDoc_bitburner_filemetadata_atime_md;
AllPages["nsDoc/bitburner.filemetadata.btime.md"] = nsDoc_bitburner_filemetadata_btime_md;
AllPages["nsDoc/bitburner.filemetadata.md"] = nsDoc_bitburner_filemetadata_md;
@@ -2661,6 +2665,7 @@ AllPages["nsDoc/bitburner.resetinfo.lastnodereset.md"] = nsDoc_bitburner_resetin
AllPages["nsDoc/bitburner.resetinfo.md"] = nsDoc_bitburner_resetinfo_md;
AllPages["nsDoc/bitburner.resetinfo.ownedaugs.md"] = nsDoc_bitburner_resetinfo_ownedaugs_md;
AllPages["nsDoc/bitburner.resetinfo.ownedsf.md"] = nsDoc_bitburner_resetinfo_ownedsf_md;
+AllPages["nsDoc/bitburner.result.md"] = nsDoc_bitburner_result_md;
AllPages["nsDoc/bitburner.runningscript.args.md"] = nsDoc_bitburner_runningscript_args_md;
AllPages["nsDoc/bitburner.runningscript.dynamicramusage.md"] = nsDoc_bitburner_runningscript_dynamicramusage_md;
AllPages["nsDoc/bitburner.runningscript.filename.md"] = nsDoc_bitburner_runningscript_filename_md;
@@ -2898,6 +2903,7 @@ AllPages["nsDoc/bitburner.studytask.classtype.md"] = nsDoc_bitburner_studytask_c
AllPages["nsDoc/bitburner.studytask.location.md"] = nsDoc_bitburner_studytask_location_md;
AllPages["nsDoc/bitburner.studytask.md"] = nsDoc_bitburner_studytask_md;
AllPages["nsDoc/bitburner.studytask.type.md"] = nsDoc_bitburner_studytask_type_md;
+AllPages["nsDoc/bitburner.successresult.md"] = nsDoc_bitburner_successresult_md;
AllPages["nsDoc/bitburner.tailproperties.fontsize.md"] = nsDoc_bitburner_tailproperties_fontsize_md;
AllPages["nsDoc/bitburner.tailproperties.height.md"] = nsDoc_bitburner_tailproperties_height_md;
AllPages["nsDoc/bitburner.tailproperties.md"] = nsDoc_bitburner_tailproperties_md;
diff --git a/src/Faction/FactionHelpers.tsx b/src/Faction/FactionHelpers.tsx
index 1e2266c6f..dde0c49db 100644
--- a/src/Faction/FactionHelpers.tsx
+++ b/src/Faction/FactionHelpers.tsx
@@ -20,7 +20,7 @@ import { SFC32RNG } from "../Casino/RNG";
import { isFactionWork } from "../Work/FactionWork";
import { getAugCost } from "../Augmentation/AugmentationHelpers";
import { getRecordKeys } from "../Types/Record";
-import type { Result } from "../types";
+import type { Result } from "@nsdefs";
export function inviteToFaction(faction: Faction): void {
if (faction.alreadyInvited || faction.isMember) return;
diff --git a/src/Hacknet/HacknetHelpers.tsx b/src/Hacknet/HacknetHelpers.tsx
index 4f5438d5b..439d03ce8 100644
--- a/src/Hacknet/HacknetHelpers.tsx
+++ b/src/Hacknet/HacknetHelpers.tsx
@@ -25,7 +25,7 @@ import { Companies } from "../Company/Companies";
import { isMember } from "../utils/EnumHelper";
import { canAccessBitNodeFeature } from "../BitNode/BitNodeUtils";
import { checkServerOwnership, ServerOwnershipType } from "../Server/ServerHelpers";
-import { Result } from "../types";
+import type { Result } from "@nsdefs";
import { exceptionAlert } from "../utils/helpers/exceptionAlert";
import { HashUpgradeEnum } from "./Enums";
diff --git a/src/Hacknet/HashManager.ts b/src/Hacknet/HashManager.ts
index 0a0493f40..768ab3c99 100644
--- a/src/Hacknet/HashManager.ts
+++ b/src/Hacknet/HashManager.ts
@@ -10,7 +10,7 @@ import { HashUpgrades } from "./HashUpgrades";
import { HashUpgrade } from "./HashUpgrade";
import { Generic_fromJSON, Generic_toJSON, IReviverValue, constructorsForReviver } from "../utils/JSONReviver";
-import { Result } from "../types";
+import type { Result } from "@nsdefs";
import { HashUpgradeEnum } from "./Enums";
export class HashManager {
diff --git a/src/NetscriptFunctions/Infiltration.ts b/src/NetscriptFunctions/Infiltration.ts
index 928dc5699..af4488b1c 100644
--- a/src/NetscriptFunctions/Infiltration.ts
+++ b/src/NetscriptFunctions/Infiltration.ts
@@ -1,5 +1,5 @@
import type { InternalAPI, NetscriptContext } from "../Netscript/APIWrapper";
-import { Infiltration as NetscriptInfiltation, InfiltrationLocation } from "@nsdefs";
+import type { Infiltration as NetscriptInfiltation, InfiltrationLocation } from "@nsdefs";
import { FactionName, LocationName } from "@enums";
import { Location } from "../Locations/Location";
import { Locations } from "../Locations/Locations";
diff --git a/src/NetscriptWorker.ts b/src/NetscriptWorker.ts
index 18ee8c1d1..419f06930 100644
--- a/src/NetscriptWorker.ts
+++ b/src/NetscriptWorker.ts
@@ -25,7 +25,7 @@ import { roundToTwo } from "./utils/helpers/roundToTwo";
import { parseCommand } from "./Terminal/Parser";
import { Terminal } from "./Terminal";
-import { ScriptArg } from "@nsdefs";
+import type { ScriptArg, Result } from "@nsdefs";
import { CompleteRunOptions, getRunningScriptsByArgs } from "./Netscript/NetscriptHelpers";
import { handleUnknownError } from "./utils/ErrorHandler";
import { isLegacyScript, resolveScriptFilePath, ScriptFilePath } from "./Paths/ScriptFilePath";
@@ -33,7 +33,6 @@ import { Player } from "@player";
import { UIEventEmitter, UIEventType } from "./ui/UIEventEmitter";
import { getErrorMessageWithStackAndCause } from "./utils/ErrorHelper";
import { exceptionAlert } from "./utils/helpers/exceptionAlert";
-import { Result } from "./types";
export const NetscriptPorts = new Map();
diff --git a/src/PersonObjects/Player/PlayerObjectGangMethods.ts b/src/PersonObjects/Player/PlayerObjectGangMethods.ts
index 0c02a2981..7cdd00086 100644
--- a/src/PersonObjects/Player/PlayerObjectGangMethods.ts
+++ b/src/PersonObjects/Player/PlayerObjectGangMethods.ts
@@ -7,7 +7,7 @@ import { Gang } from "../../Gang/Gang";
import { GangConstants } from "../../Gang/data/Constants";
import { isFactionWork } from "../../Work/FactionWork";
import { canAccessBitNodeFeature } from "../../BitNode/BitNodeUtils";
-import { Result } from "../../types";
+import type { Result } from "@nsdefs";
export function canAccessGang(this: PlayerObject): Result {
if (this.bitNodeOptions.disableGang) {
diff --git a/src/PersonObjects/Player/PlayerObjectGeneralMethods.ts b/src/PersonObjects/Player/PlayerObjectGeneralMethods.ts
index 16619a3c0..086664a8d 100644
--- a/src/PersonObjects/Player/PlayerObjectGeneralMethods.ts
+++ b/src/PersonObjects/Player/PlayerObjectGeneralMethods.ts
@@ -54,7 +54,7 @@ import { canAccessBitNodeFeature } from "../../BitNode/BitNodeUtils";
import { AlertEvents } from "../../ui/React/AlertManager";
import { Augmentations } from "../../Augmentation/Augmentations";
import { PlayerEventType, PlayerEvents } from "./PlayerEvents";
-import { Result } from "../../types";
+import type { Result } from "@nsdefs";
import type { AchievementId } from "../../Achievements/Types";
import { Infiltration } from "../../Infiltration/Infiltration";
diff --git a/src/ScriptEditor/NetscriptDefinitions.d.ts b/src/ScriptEditor/NetscriptDefinitions.d.ts
index 2f6b2f811..d0c7aa163 100644
--- a/src/ScriptEditor/NetscriptDefinitions.d.ts
+++ b/src/ScriptEditor/NetscriptDefinitions.d.ts
@@ -3,6 +3,13 @@
*/
type _ValueOf = T[keyof T];
+/** @public */
+type SuccessResult = { success: true; message?: string } & T;
+/** @public */
+type FailureResult = { success: false; message: string };
+/** @public */
+type Result = SuccessResult | FailureResult;
+
/** All netscript definitions */
/**
diff --git a/src/Settings/Settings.ts b/src/Settings/Settings.ts
index 0ac64ae6c..5bb390bdf 100644
--- a/src/Settings/Settings.ts
+++ b/src/Settings/Settings.ts
@@ -4,7 +4,7 @@ import { defaultStyles } from "../Themes/Styles";
import { CursorStyle, CursorBlinking, WordWrapOptions, StickyScroll } from "../ScriptEditor/ui/Options";
import { defaultMonacoTheme } from "../ScriptEditor/ui/themes";
import { assertObject } from "../utils/TypeAssertion";
-import { Result } from "../types";
+import type { Result } from "@nsdefs";
import {
assertAndSanitizeEditorTheme,
assertAndSanitizeKeyBindings,
diff --git a/src/types.ts b/src/types.ts
index 1d77ca71f..384bbdd8d 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -31,10 +31,6 @@ export interface IReturnStatus {
msg?: string;
}
-type SuccessResult = { success: true; message?: string } & T;
-type FailureResult = { success: false; message: string };
-export type Result = SuccessResult | FailureResult;
-
/** Defines the minimum and maximum values for a range.
* It is up to the consumer if these values are inclusive or exclusive.
* It is up to the implementor to ensure max > min. */
|