import type { PipeStep } from './pipe$.js'; import type { AnyAsyncIterable, AnyAwaitableIterable, AnyIterable, AsyncIteratedValue, IteratedValue } from './types/inputs/MinimalIterator.js'; import type { AnySubscribable } from './types/inputs/Subscribable.js'; import type { Observable } from './types/outputs/Observable.js'; import type { SimpleAsyncIterator, SimpleIterator } from './types/outputs/SimpleIterator.js'; import type { PredicateFn } from './types/utils.js'; export type FilterOrigin = AnyAwaitableIterable | AnySubscribable; export type FilterOriginValue = (O extends AnyIterable ? IteratedValue : O extends AnyAsyncIterable ? AsyncIteratedValue : unknown) & (O extends AnySubscribable ? D : unknown); export type FilterResult = (O extends AnyIterable ? SimpleIterator : O extends AnyAsyncIterable ? SimpleAsyncIterator : unknown) & (O extends AnySubscribable ? Observable : unknown); /** * Filters emitted values using given predicate * @param predicate * * @since 1.0.0 * @version 2.5.0 adds support for async iterators */ export declare function filter$>(predicate: PredicateFn, R>): PipeStep>; /** * Filters emitted values using given predicate * * @since 1.0.0 * @version 2.5.0 Add support for async iterators */ export declare function filter$(predicate: (val: FilterOriginValue) => boolean): PipeStep>>;