/**
 * Returns true if running in th browser (if not, then we're in NodeJS)
 */
export declare function isBrowser(): boolean;
export declare function browserSupportsWebWorkers(): boolean;
export declare function nodeSupportsWorkerThreads(): boolean;
export declare function getWorkerThreads(): typeof import('worker_threads') | null;
/**
 * Helper function to simply assert that the value is of the type never.
 * Usage: at the end of if/else or switch, to ensure that there is no fallthrough.
 */
export declare function assertNever(_value: never): void;
export declare function getErrorStack(err: any): string;
/**
 * Strips a stack trace of the lines following (and including) a number of regexps, each matching a line in the stack trace.
 */
export declare function stripStack(stack: string, matchLines: RegExp[]): string;
export declare function stripStack(stack: undefined, matchLines: RegExp[]): undefined;
export declare function combineErrorStacks(orgError: Error, ...stacks: string[]): Error;
export declare function combineErrorStacks(orgError: string, ...stacks: string[]): string;
export declare function combineErrorStacks(orgError: Error | string, ...stacks: string[]): Error | string;
/** A specific type of Map which contains an array of values */
export declare class ArrayMap<Key extends string, Value extends any> extends Map<Key, Value[]> {
    constructor();
    /** Appends new elements to the end of an array, and returns the new length of the array.  */
    push(key: Key, value: Value): number;
    /** Removes an element from the array, returns true if the element was found and removed */
    remove(key: Key, value: Value): boolean;
    arraySize(key: Key): number;
    /** The total number of elements in all of the arrays  */
    get totalSize(): number;
}
