f60ae7e5d4047bd241d8c41e78e5a014096b94b6f18807993f03fda932c346c3d2b444a94f484194a6f605be6092cf54e16ae4bf6f8fd282d0983ab9968355 1.3 KB

123456789101112131415161718192021
  1. import whichBoxedPrimitive from 'which-boxed-primitive';
  2. import whichCollection from 'which-collection';
  3. import whichTypedArray from 'which-typed-array';
  4. type AsyncFunction<T = unknown> = (...args: unknown[]) => Promise<T>;
  5. declare function whichBuiltinType<T>(value: Parameters<typeof whichCollection>[0]): ReturnType<typeof whichCollection>;
  6. declare function whichBuiltinType<T>(value: Parameters<typeof whichTypedArray>[0]): ReturnType<typeof whichTypedArray>;
  7. declare function whichBuiltinType<T>(value: ReadonlyArray<T>): 'Array';
  8. declare function whichBuiltinType<T>(value: Date): 'Date';
  9. declare function whichBuiltinType<T>(value: RegExp): 'RegExp';
  10. declare function whichBuiltinType<T>(value: T extends object ? WeakRef<T> : never): 'WeakRef';
  11. declare function whichBuiltinType<T>(value: FinalizationRegistry<T>): 'FinalizationRegistry';
  12. declare function whichBuiltinType<T>(value: GeneratorFunction): 'GeneratorFunction';
  13. declare function whichBuiltinType<T>(value: AsyncFunction<T>): 'AsyncFunction';
  14. declare function whichBuiltinType<T>(value: Function): 'Function';
  15. declare function whichBuiltinType<T>(value: Promise<T>): 'Promise';
  16. declare function whichBuiltinType<T>(value: T): 'Object' | Exclude<ReturnType<typeof whichBoxedPrimitive>, null | undefined> | string;
  17. export = whichBuiltinType;