import { Constructor, AnyFunction } from '../function'; import { ValueOf, Arr, Key } from '../types'; declare type MakeObjectKlassHandler = (key: keyof InstanceType, value?: ValueOf>, arg?: InstanceType) => any; declare type MakeObjectObjHandler = (key: keyof O, value?: ValueOf, arg?: O) => any; declare type MakeObjectArrayHandlerWithKeys> = (key: Keys[number], arg?: Key[]) => any; declare type MakeObjectArrayHandlerWithValues> = (value: Values[number], arg?: Key[]) => { key: Key; value: any; }; declare type MakeObjectReturn = ReturnType extends { key: any; value: any; } ? Record['key'], ReturnType['value']> : Record>; export declare function makeObject>(klass: Klass, value: V): MakeObjectReturn>; export declare function makeObject, V extends MakeObjectArrayHandlerWithValues>(k: Values, value: V): Record['key'], ReturnType['value']>; export declare function makeObject, V extends MakeObjectArrayHandlerWithKeys>(k: Keys, value: V): Record>; export declare function makeObject>(obj: O, value: V): MakeObjectReturn; export declare const map: typeof makeObject; export {};