export declare type Dict = Record; export declare type BaseTypes = string | number | boolean; export declare function invert(o: Dict): Dict; export declare function remap(src: Dict, transl: Dict, tgt?: Dict): Dict; export declare function toLut(keys: string[], v: T | T[]): Dict; export declare function tryGet(k: string, dict: Dict, fallback_value?: T): T; export declare function preferGet(k: string, dict1: Dict, dict2: Dict, fallback_value?: T): T; export declare function firstKey(o: object, exclude_keys?: string | Dict): any; export declare function inLut(keys: string[] | Dict, lut: Dict): typeof keys; export declare function notInLut(keys: string[] | Dict, lut: Dict): typeof keys; export declare function isEmpty(v: any): boolean; export declare function isString(s: any): s is string; export declare function isNumber(n: any): n is number; export declare function isDict(o: any): o is Dict; export declare function isArray(a: any): a is T[]; export declare function isDictWithKeys(o: any): o is Object; export declare function isArrayWithElems(a: any): a is []; export declare function append(acc: Dict, to_add: typeof acc, ...args: (typeof acc)[]): Dict; export declare function append(acc: Array, to_add: typeof acc, ...args: (typeof acc)[]): Array; export declare function findValueOf(key: string, o: Dict | any[], path_record?: string[]): any; export declare function dArrAt(a: T[], pos: number): T; export declare function objectMap(o: Dict, f: (t: T) => U): Dict; export declare function objectPrune(o_base: Dict, prune_f?: (v: T) => any, make_new?: boolean): Dict; export declare function deepCopy(oa: Dict | Array): typeof oa; export declare function errorRv(msg: string, rv?: RV): RV; export declare function warnRv(msg: string, rv?: RV): RV; export declare function logRv(msg: string, rv?: RV): RV;