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'; export type ScanOrigin = AnyAwaitableIterable | AnySubscribable; export type ScanOriginValue = (O extends AnyIterable ? IteratedValue : O extends AnyAsyncIterable ? AsyncIteratedValue : unknown) & (O extends AnySubscribable ? D : unknown); export type ScanCallback = (state: S, item: T) => S; export type ScanResult = (O extends AnyIterable ? SimpleIterator : O extends AnyAsyncIterable ? SimpleAsyncIterator : unknown) & (O extends AnySubscribable ? Observable : unknown); /** * Apply reducer-like function to each emitted value, emitting each result. * * @since 1.0.0 * @version 2.5.0 Add support for async iterators */ export declare function scan$(cb: ScanCallback, S>, init: S): PipeStep>;