aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/@exodus/bytes/bigint.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'vanilla/node_modules/@exodus/bytes/bigint.d.ts')
-rw-r--r--vanilla/node_modules/@exodus/bytes/bigint.d.ts48
1 files changed, 48 insertions, 0 deletions
diff --git a/vanilla/node_modules/@exodus/bytes/bigint.d.ts b/vanilla/node_modules/@exodus/bytes/bigint.d.ts
new file mode 100644
index 0000000..3a50dfa
--- /dev/null
+++ b/vanilla/node_modules/@exodus/bytes/bigint.d.ts
@@ -0,0 +1,48 @@
+/**
+ * Convert between BigInt and Uint8Array
+ *
+ * ```js
+ * import { fromBigInt, toBigInt } from '@exodus/bytes/bigint.js'
+ * ```
+ *
+ * @module @exodus/bytes/bigint.js
+ */
+
+/// <reference types="node" />
+
+import type { OutputFormat, Uint8ArrayBuffer } from './array.js';
+
+/**
+ * Options for converting BigInt to bytes
+ */
+export interface FromBigIntOptions {
+ /** The length in bytes of the output array */
+ length: number;
+ /** Output format (default: 'uint8') */
+ format?: OutputFormat;
+}
+
+/**
+ * Convert a BigInt to a Uint8Array or Buffer
+ *
+ * The output bytes are in big-endian format.
+ *
+ * Throws if the BigInt is negative or cannot fit into the specified length.
+ *
+ * @param bigint - The BigInt to convert (must be non-negative)
+ * @param options - Conversion options
+ * @returns The converted bytes in big-endian format
+ */
+export function fromBigInt(bigint: bigint, options: { length: number; format?: 'uint8' }): Uint8ArrayBuffer;
+export function fromBigInt(bigint: bigint, options: { length: number; format: 'buffer' }): Buffer;
+export function fromBigInt(bigint: bigint, options: FromBigIntOptions): Uint8ArrayBuffer | Buffer;
+
+/**
+ * Convert a Uint8Array or Buffer to a BigInt
+ *
+ * The bytes are interpreted as a big-endian unsigned integer.
+ *
+ * @param arr - The bytes to convert
+ * @returns The BigInt representation
+ */
+export function toBigInt(arr: Uint8Array): bigint;