export declare function mergeWith<K1, K2, V1, V2, V3>(map1: Map<K1, V1>, map2: Map<K2, V2>, merger: (val1: V1, val2: V2, key: K1 | K2) => V3): Map<K1 | K2, V1 | V2 | V3>;
export declare function merge<K1, K2, V1, V2>(map1: Map<K1, V1>, map2: Map<K2, V2>): Map<K1 | K2, V1 | V2>;
export declare function filterMap<K, V>(map: Map<K, V>, pred: (v: V, k: K) => boolean): Map<K, V>;
export declare function mapKeys<K, V, NK>(map: Map<K, V>, fn: (k: K) => NK): Map<NK, V>;
export declare function mapValues<K, V, NV>(map: Map<K, V>, fn: (v: V, k: K) => NV): Map<K, NV>;
export declare function toObject<K, V>(map: Map<K, V>): {
    [k: string]: V;
};
export declare function toJS<K, V>(map: Map<K, V>): {
    [k: string]: V;
};
export declare function equalsMap<K, V>(a: Map<K, V>, b: Map<K, V>): boolean;
export declare function mapFromObject<V>(obj: {
    [k: string]: V;
}): Map<string, V>;
export declare function mapToObject<V>(map: Map<string, V>): {
    [k: string]: V;
};
export type SourcedPropertyDescriptor = PropertyDescriptor & {
    source: object;
};
export declare function getDeepPropertyDescriptor(obj: any, propertyKey: string | symbol): SourcedPropertyDescriptor | undefined;
//# sourceMappingURL=map.d.ts.map