import { type AnyObject, type MaybePromise } from '@augment-vir/core'; export declare function getOrSetFromMap(map: WeakMap, key: MapKey, createCallback: () => MapValue): MapValue; export declare function getOrSetFromMap(map: Map, key: MapKey, createCallback: () => MapValue): MapValue; export declare function getOrSetFromMap(map: WeakMap, key: MapKey, createCallback: () => Promise): Promise; export declare function getOrSetFromMap(map: Map, key: MapKey, createCallback: () => Promise): Promise; export declare function getOrSetFromMap(map: WeakMap, key: MapKey, createCallback: () => MaybePromise): MaybePromise; export declare function getOrSetFromMap(map: Map, key: MapKey, createCallback: () => MaybePromise): MaybePromise; export declare function getOrSet(originalObject: OriginalObject, key: Key, createCallback: () => OriginalObject[Key]): Required[Key]; export declare function getOrSet(originalObject: OriginalObject, key: Key, createCallback: () => Promise): Promise[Key]>; export declare function getOrSet(originalObject: OriginalObject, key: Key, createCallback: () => MaybePromise): MaybePromise[Key]>;