import type { MathTrait } from '../ops.ts'; export declare function id(...args: any[]): bigint; export declare const sorted: (x: T) => T; export declare class DefaultMap extends Map { private defaultFn; constructor(values: [K, V][] | undefined, defaultFn: () => V); get(key: K): V; } type WeakArrayKey = { _id: bigint; } | ArrayKey[]; type ArrayKey = { _id: bigint; } | ArrayKey[] | string | ConstType | undefined; export declare class ArrayMap { map: Map; constructor(values?: Internal[]); get size(): number; get: (key: K) => V | undefined; set: (key: K, value: V) => void; has: (key: K) => boolean; entries: () => [K, V][]; keys: () => K[]; values: () => V[]; delete: (k: K) => boolean; clear: () => void; setDefault: (key: K, defaultValue: V) => V; } export declare class WeakKeyMap extends ArrayMap, V]> { private finalizationGroup; constructor(); get: (key: K) => V | undefined; set: (keyValue: K, value: V) => void; entries: () => [K, V][]; delete: (k: K) => boolean; clear: () => void; } export declare class WeakValueMap extends ArrayMap]> { constructor(); get: (key: K) => V | undefined; set: (key: K, value: V) => void; entries: () => [K, V][]; delete: (k: K) => boolean; clear: () => void; } export declare class NotImplemented extends Error { constructor(); } export declare const floatString: (x: number) => string; export declare const constToNumeric: (x: ConstType) => number | bigint; export declare const max: (v: T[]) => number | T; export declare const min: (v: T[]) => number | T; export declare const abs: (x: T) => number | bigint; export declare const trunc: (x: T) => number | (T & bigint); export declare const sqrt: (x: T) => number | bigint; export declare const sin: (x: T) => number; export declare const bigint_sqrt: (v: bigint) => bigint; export declare const bigint_sin: (v: bigint) => number; export declare const next: (arr: Iterator, def: A) => A; export declare const int_to_bytes: (int: number) => Uint8Array; export declare const bytes_to_bigint: (bytes: Uint8Array) => bigint; export declare const isInf: (x: number) => boolean; export declare abstract class Enum { private readonly className; readonly name: string; readonly value: number; constructor(className: string, name: string, value: number); toString: () => string; [Symbol.toPrimitive](hint: 'string' | 'number' | 'default'): string | number; } export declare const random_id: () => string; export declare const string_to_bytes: (text: string) => Uint8Array; export declare const bytes_to_string: (bytes: Uint8Array) => string; export declare const bytes_to_hex: (arr: Uint8Array) => string; export declare const concat_bytes: (...arrays: Uint8Array[]) => Uint8Array; export declare function product(...arrays: T): Out; export declare function product(array: T, repeat?: number): Out; export declare const divmod: (a: number, b: number) => number[]; export declare function counter(start?: number): Generator; export declare const list_str: (x?: any[]) => string; export declare const entries: (object: Record) => [K, V][]; export declare function is_less_than(one: any[], two: any[]): boolean; export type ConstType = number | bigint | boolean | This; export declare const isConst: (x: any) => x is ConstType; export declare const is_eq: (one: any, two: any) => boolean; export declare const intersection: (...sets: Set[]) => Set; export declare function set_default(map: Map, key: K, defaultValue: V): V; type Iterableify = { [K in keyof T]: Iterable; }; export declare function zip>(...toZip: Iterableify): T[]; export declare function range(start: number, stop?: number, step?: number): number[]; export declare const tuple: (...t: T) => T; export declare const assert: (condition: boolean) => condition is true; export declare function permutations(arr: T[], length?: number): T[][]; export declare function is_subset(main: Set, subset: Set): boolean; export declare function math_gcd(...numbers: number[]): number; export declare const dedup: (arr: T[]) => T[]; export declare const argsort: (x: T[]) => number[]; export declare const all_same: (items: T[]) => boolean; export declare const isInt: (x: any) => x is number; export declare const all_int: (t: any[]) => t is number[]; export declare const colored: (st: string, color?: string, background?: boolean) => string; export declare const colorize_float: (x: number) => string; export declare const memsize_to_str: (_b: number) => string; export declare const ansistrip: (s: string) => string; export declare const ansilen: (s: string) => number; export declare const make_tuple: (x: number | number[], cnt: number) => number[]; export declare const flatten: (l: T[][]) => T[]; export declare const fully_flatten: (l: any) => any[]; export declare const strip_parens: (s: string) => string; export declare const round_up: (num: number, amt: number) => number; export declare const lo32: (x: any) => number; export declare const hi32: (x: any) => number; export declare const data64: (data: number) => [number, number]; export declare const data64Le: (data: number) => [number, number]; export declare const getbits: (value: number, start: number, end: number) => number; export declare const i2u: (bits: number, value: number) => number; export declare const merge_dicts: (ds: Record[]) => Record; export declare function merge_maps(maps: Iterable>): Map; export declare function merge_sets(sets: Iterable>): Set; export declare const partition: (itr: T[], fn: (x: T) => boolean) => [T[], T[]]; export declare const get_single_element: (x: T[]) => T; export declare const unwrap: (x: T | undefined) => T; export declare const getChild: (obj: any, key: string) => any; export declare const word_wrap: (x: string, wrap?: number) => string; export declare const to_function_name: (s: string) => string; export declare class Metadata { name: string; caller: string; backward: boolean; id: bigint; static cache: WeakValueMap; constructor(name: string, caller: string, backward?: boolean); toString: () => string; } declare class ContextVar { private value; private tokens; constructor(value: T); get: () => T; set: (v: T) => string; reset: (token: string) => void; } export declare const _METADATA: ContextVar; export declare class GlobalCounters { static global_ops: number; static global_mem: number; static time_sum_s: number; static kernel_count: number; static mem_used: number; static reset: () => [number, number, number, number]; } export declare const perf: (start_ms: number) => number; export declare const round: (value: number, decimals?: number) => number; export declare const Timing: (fn: () => Promise) => Promise<[T, number]>; export declare const _format_fcn: (fcn: any[]) => string; export declare class Profiling { } export declare const _ensure_downloads_dir: () => string; export declare const cpu_time_execution: (fn: (...args: Args) => Promise | void) => (...args: Args) => Promise; export declare const cpu_objdump: (lib: Uint8Array, objdumpTool?: string) => never; export declare const capstone_flatdump: (lib: Uint8Array) => never; export declare function replace(instance: T, replacement: Partial): T; export type Slice = { from?: number; to?: number; by?: number; }; /** * A Python-like slice function for arrays in TypeScript. * @param arr - The array you want to slice * @param options - An object containing start, stop, and step * - start?: number (defaults to 0 if step > 0, or last index if step < 0) * - stop?: number (defaults to arr.length if step > 0, or -arr.length - 1 if step < 0) * - step?: number (defaults to 1) * @returns A new array sliced according to the options */ export declare function slice(arr: T[], { from: start, to: stop, by: step }?: Slice): T[]; export declare function cache(fn: (...args: Args) => Return): (...args: Args) => Return; export declare function cache_fn(fn: (...args: Args) => Return): (...args: Args) => Return; export type Math = ConstType | MathTrait; type Return = A extends MathTrait ? A : B extends MathTrait ? B : A extends bigint ? bigint : B extends bigint ? bigint : number; export declare const num: (val: T) => number; export declare const add: (a: A, b: B) => Return; export declare const sub: (a: A, b: B) => Return; export declare const mul: (a: A, b: B) => Return; export declare const div: (a: A, b: B) => Return; export declare const idiv: (a: A, b: B) => Return; export declare const neg: (a: A) => Return; export declare const mod: (a: A, b: B) => Return; export declare const and: (a: A, b: B) => Return; export declare const or: (a: A, b: B) => Return; export declare const xor: (a: A, b: B) => Return; export declare const lshift: (a: A, b: B) => Return; export declare const rshift: (a: A, b: B) => Return; export declare const lt: (a: A, b: B) => Return; export declare const gt: (a: A, b: B) => Return; export declare const le: (a: A, b: B) => Return; export declare const ge: (a: A, b: B) => Return; export declare const ne: (a: A, b: B) => Return; export declare const eq: (a: A, b: B) => Return; export declare const polyN: (x: T, p: Math[]) => T; export declare const prod: (x: T[]) => T; export declare const sum: (x: T[]) => T; export declare const ceildiv: (num: A, amt: B) => Return; export declare const pow: (a: A, b: B) => Return; export declare function pairwise(iterable: Iterable): Generator<[T, T], void, unknown>; export declare function accumulate(iterable: Iterable, func?: (acc: T, val: T) => T, initialValue?: T): Generator; declare class _Vars { _env: Record; get: (key: string, def?: string) => string | undefined; get_num: (key: string, def?: number) => number; set: (key: string, value: string) => string; with: (overrides: Record, fn: () => Res) => Res; withAsync: (overrides: Record, fn: () => Promise) => Promise; get CI(): boolean; set CI(val: boolean); get DEBUG(): number; set DEBUG(val: number); get IMAGE(): number; set IMAGE(val: number); get BEAM(): number; set BEAM(val: number); get NOOPT(): number; set NOOPT(val: number); get JIT(): number; set JIT(val: number); get WINO(): number; set WINO(val: number); get CAPTURING(): number; set CAPTURING(val: number); get TRACEMETA(): number; set TRACEMETA(val: number); get USE_TC(): number; set USE_TC(val: number); get TC_OPT(): number; set TC_OPT(val: number); get AMX(): number; set AMX(val: number); get TRANSCENDENTAL(): number; set TRANSCENDENTAL(val: number); get FUSE_ARANGE(): number; set FUSE_ARANGE(val: number); get FUSE_CONV_BW(): number; set FUSE_CONV_BW(val: number); get SPLIT_REDUCEOP(): number; set SPLIT_REDUCEOP(val: number); get NO_MEMORY_PLANNER(): number; set NO_MEMORY_PLANNER(val: number); get RING(): number; set RING(val: number); get PICKLE_BUFFERS(): number; set PICKLE_BUFFERS(val: number); get PROFILE(): string | undefined; set PROFILE(val: string | undefined); get LRU(): number; set LRU(val: number); get CACHELEVEL(): number; set CACHELEVEL(val: number); get CAPTURE_PROCESS_REPLAY(): string | undefined; set CAPTURE_PROCESS_REPLAY(val: string | undefined); get TQDM(): number; } export declare const vars: _Vars; export {};