import { AsyncTrap } from '../functions/asyncTrap'; export type AnyRec = Record; export type AnyObj = AnyRec | (Function & AnyRec); export type AsyncObjectLookup = ( key: Key, new_value?: Rec[Key] ) => Promise; export type AsyncObjectInvocable = Base extends Function ? Base : AsyncObjectLookup; export type AsyncObject = { [Key in keyof Rec]: Rec[Key] | AsyncTrap; } & AsyncObjectInvocable; export declare function AsyncObject( base: Base ): AsyncObject; export default AsyncObject;