import { EnumerableFactory } from '../utilities/EnumerableFactory'; import { applyMin } from './applicators/applyMin'; export function min(src: Iterable): TSource; export function min(src: Iterable, selector: (item: TSource) => TResult): TResult; export function min( src: Iterable, selector?: (item: TSource) => TResult ): TSource | TResult { return applyMin(new EnumerableFactory(), src, x => x, selector); } export function minBy(src: Iterable, keySelector: (item: TSource) => TKey): TSource { return applyMin(new EnumerableFactory(), src, keySelector); }