export interface Dict { [stringKey: string]: V; [numberKey: number]: V; } export declare function contains(obj: Dict, key: string | number): boolean; export declare function get(obj: Dict, key: string | number): V | null; export declare function size(obj: Dict): number; /** Returns the given value if it's defined or the defaultValue otherwise. */ export declare function defaulted(value: V | undefined, defaultValue: V): V; export declare function forEachNumber(obj: Dict, fn: (key: number, val: V) => void): void; export declare function values(obj: Dict): V[]; export declare function forEach(obj: Dict, fn: (key: string, val: V) => void): void; export declare function lookupOrInsert(obj: Dict, key: string | number, valFn: () => V): V; export declare function isEmpty(obj: Dict): boolean; export declare function shallowCopy(obj: Dict): Dict;