import type { Request } from 'express'; export declare function getNanoTimestamp(): bigint; export declare const randomBytesAsync: (arg1: number) => Promise; export declare const isValidInteger: (num: any) => num is number; export declare const checkInt: (num?: string) => number | false; export declare const getIP: (req: Request) => string | undefined; export declare const getIPv4: (req: Request) => string | undefined; export declare const getBase64DataUri: (filePath: string, mimeType: "image/png" | "image/svg+xml") => Promise; export declare const b64decode: (str: string) => string; export declare const throttledForEach: (array: T[], delayMS: number, fn: (item: T) => PromiseLike | U) => Promise; export declare const withRetries: (func: () => Promise, delayDuration?: number, retries?: number) => Promise; /** * Useful when you want to avoid having to manually parse the key * or when need order guarantees while iterating the keys. */ export declare const groupByMap: (entries: V[], iteratee: (item: V) => K) => Map; export declare const getBodyOrQueryParam: (req: R, paramName: P, defaultValue?: D) => Exclude<(P extends keyof R["body"] ? R["body"][P] : never) | (P extends keyof R["query"] ? R["query"][P] : never), null> | D;