{
  "version": 3,
  "sources": ["../Source/Miscellaneous/index.ts", "../Source/Miscellaneous/Utility.Types.ts"],
  "sourcesContent": ["/**\n * Miscellaneous helper types and utilities.\n *\n * @module @sorrell/utilities/misc\n */\n/**\n * @file      index.ts\n * @author    Gage Sorrell <gage@sorrell.sh>\n * @copyright (c) 2026 Gage Sorrell\n * @license   MIT\n */\nexport * from \"./Utility.Types.ts\";\n", "/**\n * @file      Utility.Types.ts\n * @author    Gage Sorrell <gage@sorrell.sh>\n * @copyright (c) 2026 Gage Sorrell\n * @license   MIT\n */\n/**\n * A simple wrapper to allow passing primitives to functions by-reference.\n *\n * @template Type - The type of the value wrapped by this.\n */\nexport type Ref<Type> = {\n    Ref: Type | undefined;\n};\n/**\n * The opposite of {@link NonNullable}: the union of a given {@link Type}, `null`, and `undefined`.\n *\n * @template Type - The nontrivial type in this union.\n */\nexport type TNullable<Type> = Type | null | undefined;\n/** An error that is thrown in default implementations of `abstract` `class`es. */\nexport class AbstractMethodCallError extends Error {\n    public constructor(ClassName?: string) {\n        super(ClassName);\n    }\n}\n/**\n * A \"safe\" intersection of two types, such that if exactly one\n * of the two types is `never`, then this evaluates to the other type.\n * This evaluates to the intersection of the two types iff *both*\n * type parameters.\n *\n * @template LeftType - The first type parameter.\n * @template RightType - The second type parameter.\n */\nexport type TSafeIntersection<LeftType, RightType> = [\n    LeftType\n] extends [\n    never\n] ? [\n    RightType\n] extends [\n    never\n] ? never : RightType : [\n    RightType\n] extends [\n    never\n] ? LeftType : (LeftType & RightType);\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACqBO,IAAM,0BAAN,cAAsC,MAAM;AAAA,EACxC,YAAY,WAAoB;AACnC,UAAM,SAAS;AAAA,EACnB;AACJ;",
  "names": []
}
