summary refs log tree commit diff
path: root/dist/util/Snowflake.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'dist/util/Snowflake.d.ts')
-rw-r--r--dist/util/Snowflake.d.ts58
1 files changed, 58 insertions, 0 deletions
diff --git a/dist/util/Snowflake.d.ts b/dist/util/Snowflake.d.ts
new file mode 100644
index 00000000..bd8c05bb
--- /dev/null
+++ b/dist/util/Snowflake.d.ts
@@ -0,0 +1,58 @@
+/**
+ * A container for useful snowflake-related methods.
+ */
+export declare class Snowflake {
+    static readonly EPOCH = 1420070400000;
+    static INCREMENT: bigint;
+    static processId: bigint;
+    static workerId: bigint;
+    constructor();
+    /**
+     * A Twitter snowflake, except the epoch is 2015-01-01T00:00:00.000Z
+     * ```
+     * If we have a snowflake '266241948824764416' we can represent it as binary:
+     *
+     * 64                                          22     17     12          0
+     *  000000111011000111100001101001000101000000  00001  00000  000000000000
+     *       number of ms since Discord epoch       worker  pid    increment
+     * ```
+     * @typedef {string} Snowflake
+     */
+    /**
+     * Transforms a snowflake from a decimal string to a bit string.
+     * @param  {Snowflake} num Snowflake to be transformed
+     * @returns {string}
+     * @private
+     */
+    static idToBinary(num: any): string;
+    /**
+     * Transforms a snowflake from a bit string to a decimal string.
+     * @param  {string} num Bit string to be transformed
+     * @returns {Snowflake}
+     * @private
+     */
+    static binaryToID(num: any): string;
+    static generate(): bigint;
+    /**
+     * A deconstructed snowflake.
+     * @typedef {Object} DeconstructedSnowflake
+     * @property {number} timestamp Timestamp the snowflake was created
+     * @property {Date} date Date the snowflake was created
+     * @property {number} workerID Worker ID in the snowflake
+     * @property {number} processID Process ID in the snowflake
+     * @property {number} increment Increment in the snowflake
+     * @property {string} binary Binary representation of the snowflake
+     */
+    /**
+     * Deconstructs a Discord snowflake.
+     * @param {Snowflake} snowflake Snowflake to deconstruct
+     * @returns {DeconstructedSnowflake} Deconstructed snowflake
+     */
+    static deconstruct(snowflake: any): {
+        timestamp: any;
+        workerID: number;
+        processID: number;
+        increment: number;
+        binary: string;
+    };
+}