import type { PipeStep } from './pipe$.js'; import type { AsyncDeferrable, Deferrable } from './types/inputs/Deferrable.js'; import type { AnyAsyncIterable, AnyAwaitableIterable, AnyIterable, AsyncIteratedValue, IteratedValue } from './types/inputs/MinimalIterator.js'; import type { AsyncMutable, Mutable } from './types/inputs/Mutable.js'; import type { AnySubscribable } from './types/inputs/Subscribable.js'; import type { AsyncMutator, Mutator } from './types/outputs/Mutator.js'; import type { Observable } from './types/outputs/Observable.js'; import type { AsyncRef, Ref } from './types/outputs/Ref.js'; import type { SimpleAsyncIterator, SimpleIterator } from './types/outputs/SimpleIterator.js'; import type { Awaitable } from './types/utils.js'; export type MapOrigin = AnyAwaitableIterable | AnySubscribable | Deferrable> | Mutable>; export type MapMutable = O extends AsyncMutable ? AsyncMutator : Mutator; export type MapDeferrable = O extends AsyncDeferrable ? AsyncRef : Ref; export type MapOriginValue = (O extends AnyIterable ? IteratedValue : O extends AnyAsyncIterable ? AsyncIteratedValue : unknown) & (O extends AnySubscribable ? D : unknown) & (O extends Deferrable ? Awaited : unknown) & (O extends Mutable ? Awaited : unknown); export type MapResult = (O extends AnyIterable ? SimpleIterator : O extends AnyAsyncIterable ? SimpleAsyncIterator : unknown) & (O extends AnySubscribable ? Observable : unknown) & (O extends Deferrable ? MapDeferrable : unknown) & (O extends Mutable ? MapMutable : unknown); /** * Applies given function on every emitted values, including values returned by defer and mutate if present. * Then it emits or returns the value returned by fn. * * @since 1.0.0 * @version 2.5.0 Add support for async iterators */ export declare function map$(fn: (arg: MapOriginValue) => R): PipeStep>;