import { checkRateLimits } from "./checkRateLimits.ts";import { cleanupQueues } from "./cleanupQueues.ts";import { createRequestBody } from "./createRequestBody.ts";import { processQueue } from "./processQueue.ts";import { processRateLimitedPaths } from "./processRateLimitedPaths.ts";import { processRequest } from "./processRequest.ts";import { processRequestHeaders } from "./processRequestHeaders.ts";import { runMethod } from "./runMethod.ts";import { simplifyUrl } from "./simplifyUrl.ts";
export const rest = { token: "", maxRetryCount: 10, apiVersion: "9", authorization: "discordeno_best_lib_ever", pathQueues: new Map< string, { request: RestRequest; payload: RestPayload; }[] >(), processingQueue: false, processingRateLimitedPaths: false, globallyRateLimited: false, ratelimitedPaths: new Map<string, RestRateLimitedPath>(), eventHandlers: { error: function (...args: unknown[]) {}, debug: function (type: string, error: string | Record<string, unknown>) {}, fetching(payload: RestPayload) {}, fetched(payload: RestPayload) {}, fetchSuccess(payload: RestPayload) {}, fetchFailed(payload: RestPayload, error: unknown) {}, globallyRateLimited(url: string, resetsAt: number) {}, retriesMaxed(payload: RestPayload) {}, }, checkRateLimits, cleanupQueues, processQueue, processRateLimitedPaths, processRequestHeaders, processRequest, createRequestBody, runMethod, simplifyUrl,};
export interface RestRequest { url: string; method: string; respond: (payload: { status: number; body?: string }) => unknown; reject: (error: unknown) => unknown;}
export interface RestPayload { bucketId?: string; body?: Record<string, unknown>; retryCount: number;}
export interface RestRateLimitedPath { url: string; resetTimestamp: number; bucketId?: string;}