import { OperatorFunction } from '../../interfaces'; import { IterableX } from '../../iterable/iterablex'; import { TakeWhileIterable } from '../takewhile'; export function takeWhile( predicate: (value: T, index: number) => value is S ): OperatorFunction; export function takeWhile( predicate: (value: T, index: number) => boolean ): OperatorFunction; export function takeWhile( predicate: (value: T, index: number) => boolean ): OperatorFunction { return function takeWhileOperatorFunction(source: Iterable): IterableX { return new TakeWhileIterable(source, predicate); }; }