evt
Version:
Type safe replacement for node's EventEmitter
1,267 lines (1,266 loc) • 35.8 kB
TypeScript
import type { Operator } from "../Operator";
import type { StatefulEvt } from "./StatefulEvt";
import type { CtxLike } from "./CtxLike";
import type { Evt } from "./Evt";
import type { Handler } from "../Handler";
import type { AsyncIterableEvt } from "../AsyncIterableEvt";
export interface NonPostableEvt<T> {
/** https://docs.evt.land/api/statefulevt#converting-an-evt-into-a-statefulevt */
toStateful(initialState: T, ctx?: CtxLike): StatefulEvt<T>;
toStateful(ctx?: CtxLike): StatefulEvt<T | undefined>;
/** https://docs.evt.land/api/evt/evtattachdetach */
readonly evtAttach: Evt<Handler<T, any>>;
/** https://docs.evt.land/api/evt/evtattachdetach */
readonly evtDetach: Evt<Handler<T, any>>;
/** https://docs.evt.land/api/evt/setmaxhandlers */
setMaxHandlers(n: number): this;
/**
* https://docs.evt.land/api/evt/post
*
* Number of times .post(data) have been called.
*/
readonly postCount: number;
/** https://docs.evt.land/api/evt/enabletrace */
enableTrace(params: {
id: string;
formatter?: (data: T) => string;
log?: ((message?: any, ...optionalParams: any[]) => void) | false;
}): void;
/** https://docs.evt.land/api/evt/enabletrace */
disableTrace(): this;
/**
* TODO: Update doc, it replace: https://docs.evt.land/api/evt/getstatelessop
* Maybe this feature is too confusing to be documented...
* */
getInvocableOp<U>(op: Operator<T, U>): Operator.fλ.Stateless<T, U>;
/** TODO: DOC !!! */
isHandledByOp<U>(op: Operator<T, U>, data: T): boolean;
/**
* https://docs.evt.land/api/evt/ishandled
*
* Test if posting a given event data will have an effect.
*
* Return true if:
* -There is at least one handler matching
* this event data ( at least one handler's callback function
* will be invoked if the data is posted. )
* -Handlers could be will be detached
* if the event data is posted.
*
*/
isHandled(data: T): boolean;
/** https://docs.evt.land/api/evt/gethandler */
getHandlers(): Handler<T, any>[];
/**
* https://docs.evt.land/api/evt/detach
*
* Detach every handlers of the Evt that are bound to the provided context
* */
detach<CtxResult>(ctx: CtxLike<CtxResult>): Handler<T, any, CtxLike<CtxResult>>[];
/**
* https://docs.evt.land/api/evt/detach
*
* (unsafe) Detach every handlers from the Evt
* */
detach(): Handler<T, any>[];
/** https://docs.evt.land/api/evt/pipe */
pipe(): Evt<T>;
pipe<U>(op: Operator.fλ<T, U>): Evt<U>;
pipe<U extends T>(op: (data: T) => data is U): Evt<U>;
pipe(op: (data: T) => boolean): Evt<T>;
pipe(ctx: CtxLike): Evt<T>;
pipe<U>(ctx: CtxLike, op: Operator.fλ<T, U>): Evt<U>;
pipe<U extends T>(ctx: CtxLike, op: (data: T) => data is U): Evt<U>;
pipe(ctx: CtxLike, op: (data: T) => boolean): Evt<T>;
pipe<B, C>(op1: Operator.fλ<T, B>, op2: Operator.fλ<B, C>): Evt<C>;
pipe<B, C extends B>(op1: Operator.fλ<T, B>, op2: (data: B) => data is C): Evt<C>;
pipe<B>(op1: Operator.fλ<T, B>, op2: (data: B) => boolean): Evt<B>;
pipe<B extends T, C>(op1: (data: T) => data is B, op2: Operator.fλ<B, C>): Evt<B>;
pipe<B>(op1: (data: T) => boolean, op2: Operator.fλ<T, B>): Evt<B>;
pipe<B extends T, C extends B>(op1: (data: T) => data is B, op2: (data: B) => data is C): Evt<C>;
pipe<B extends T>(op1: (data: T) => data is B, op2: (data: B) => boolean): Evt<B>;
pipe<B extends T>(op1: (data: T) => boolean, op2: (data: T) => data is B): Evt<B>;
pipe<T>(op1: (data: T) => boolean, op2: (data: T) => boolean): Evt<T>;
pipe<B, C, D>(op1: Operator.fλ<T, B>, op2: Operator.fλ<B, C>, op3: Operator.fλ<C, D>): Evt<D>;
pipe<B, C, D, E>(op1: Operator.fλ<T, B>, op2: Operator.fλ<B, C>, op3: Operator.fλ<C, D>, op4: Operator.fλ<D, E>): Evt<E>;
pipe<B, C, D, E>(op1: Operator.fλ<T, B>, op2: Operator.fλ<B, C>, op3: Operator.fλ<C, D>, op4: Operator.fλ<D, E>): Evt<E>;
pipe<B, C, D, E, F>(op1: Operator.fλ<T, B>, op2: Operator.fλ<B, C>, op3: Operator.fλ<C, D>, op4: Operator.fλ<D, E>, op5: Operator.fλ<E, F>): Evt<F>;
pipe<B, C>(op1: Operator<T, B>, op2: Operator<B, C>): Evt<C>;
pipe<B, C, D>(op1: Operator<T, B>, op2: Operator<B, C>, op3: Operator<C, D>): Evt<D>;
pipe<B, C, D, E>(op1: Operator<T, B>, op2: Operator<B, C>, op3: Operator<C, D>, op4: Operator<D, E>): Evt<E>;
pipe<B, C, D, E, F>(op1: Operator<T, B>, op2: Operator<B, C>, op3: Operator<C, D>, op4: Operator<D, E>, op5: Operator<E, F>): Evt<F>;
pipe(...ops: [
Operator<T, any>,
...Operator<any, any>[]
]): Evt<any>;
pipe<T>(...ops: [
Operator<T, any>,
...Operator<any, any>[]
]): Evt<any>;
/**
* https://docs.evt.land/api/evt/waitfor
*
* op - fλ
*
* ctx
*
* timeout?
*/
waitFor<U>(op: Operator.fλ.Stateless<T, U>, ctx: CtxLike, timeout?: number): Promise<U>;
/**
* https://docs.evt.land/api/evt/waitfor
*
* op - Type guard
*
* ctx
*
* timeout?
*/
waitFor<Q extends T>(op: (data: T) => data is Q, ctx: CtxLike, timeout?: number): Promise<Q>;
/**
* https://docs.evt.land/api/evt/waitfor
*
* op - Filter
*
* ctx
*
* timeout?
*/
waitFor(op: (data: T) => boolean, ctx: CtxLike, timeout?: number): Promise<T>;
/**
* https://docs.evt.land/api/evt/waitfor
*
* op - fλ
*
* timeout?
*/
waitFor<U>(op: Operator.fλ.Stateless<T, U>, timeout?: number): Promise<U>;
/**
* https://docs.evt.land/api/evt/waitfor
*
* op - Type guard
*
* timeout?
*/
waitFor<Q extends T>(op: (data: T) => data is Q, timeout?: number): Promise<Q>;
/**
* https://docs.evt.land/api/evt/waitfor
*
* op - Filter
*
* timeout?
*/
waitFor(op: (data: T) => boolean, timeout?: number): Promise<T>;
/**
* https://docs.evt.land/api/evt/waitfor
*
* ctx
*
* timeout?
*/
waitFor(ctx: CtxLike, timeout?: number): Promise<T>;
/**
* https://docs.evt.land/api/evt/waitfor
*
* timeout?
*/
waitFor(timeout?: number): Promise<T>;
[Symbol.asyncIterator](): AsyncIterator<T>;
/**
* https://docs.evt.land/api/evt/iter
*
* op - fλ
*
* ctx
*
* timeout?
*/
iter<U, CtxResult>(op: Operator.fλ.Stateless<T, U>, ctx: CtxLike<CtxResult>, timeout?: number): AsyncIterableEvt<U, CtxResult>;
/**
* https://docs.evt.land/api/evt/iter
*
* op - Type guard
*
* ctx
*
* timeout?
*/
iter<Q extends T, CtxResult>(op: (data: T) => data is Q, ctx: CtxLike<CtxResult>, timeout?: number): AsyncIterableEvt<Q, CtxResult>;
/**
* https://docs.evt.land/api/evt/iter
*
* op - Filter
*
* ctx
*
* timeout?
*/
iter<CtxResult>(op: (data: T) => boolean, ctx: CtxLike<CtxResult>, timeout?: number): AsyncIterableEvt<T, CtxResult>;
/**
* https://docs.evt.land/api/evt/iter
*
* op - fλ
*
* timeout?
*/
iter<U, CtxResult>(op: Operator.fλ.Stateless<T, U>, timeout?: number): AsyncIterableEvt<U>;
/**
* https://docs.evt.land/api/evt/iter
*
* op - Type guard
*
* timeout?
*/
iter<Q extends T>(op: (data: T) => data is Q, timeout?: number): AsyncIterableEvt<Q>;
/**
* https://docs.evt.land/api/evt/iter
*
* op - Filter
*
* timeout?
*/
iter(op: (data: T) => boolean, timeout?: number): AsyncIterableEvt<T>;
/**
* https://docs.evt.land/api/evt/iter
*
* ctx
*
* timeout?
*/
iter<CtxResult>(ctx: CtxLike, timeout?: number): AsyncIterableEvt<T, CtxResult>;
/**
* https://docs.evt.land/api/evt/iter
*
* timeout?
*/
iter(timeout?: number): AsyncIterableEvt<T, void>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* ctx
*
* timeout
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attach<U>(op: Operator.fλ<T, U>, ctx: CtxLike, timeout: number, callback: (transformedData: U) => void): Promise<U>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* ctx
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attach<U>(op: Operator.fλ<T, U>, ctx: CtxLike, callback: (transformedData: U) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* timeout
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attach<U>(op: Operator.fλ<T, U>, timeout: number, callback: (transformedData: U) => void): Promise<U>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attach<U>(op: Operator.fλ<T, U>, callback: (transformedData: U) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* ctx
*
* timeout
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attach() method )
*
*/
attach<Q extends T>(op: (data: T) => data is Q, ctx: CtxLike, timeout: number, callback: (data: Q) => void): Promise<Q>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* ctx
*
* timeout
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attach() method )
*/
attach(op: (data: T) => boolean, ctx: CtxLike, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* ctx
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attach() method )
*/
attach<Q extends T>(op: (data: T) => data is Q, ctx: CtxLike, callback: (data: Q) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* ctx
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attach() method )
*/
attach(op: (data: T) => boolean, ctx: CtxLike, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* timeout
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attach() method )
*/
attach<Q extends T>(op: (data: T) => data is Q, timeout: number, callback: (data: Q) => void): Promise<Q>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* timeout
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attach() method )
*/
attach(op: (data: T) => boolean, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* ctx
*
* timeout
*
* callback
*/
attach(ctx: CtxLike, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attach() method )
*/
attach<Q extends T>(op: (data: T) => data is Q, callback: (data: Q) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attach() method )
*/
attach(op: (data: T) => boolean, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* ctx
*
* callback
*/
attach(ctx: CtxLike, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* timeout
*
* callback
*/
attach(timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* callback
*/
attach(callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* ctx
*
* timeout
*
* callback
*
* NOTE: $attachOnce() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attachOnce() without the '$' prefix.
*/
$attachOnce<U>(op: Operator.fλ.Stateless<T, U>, ctx: CtxLike, timeout: number, callback: (transformedData: U) => void): Promise<U>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* ctx
*
* callback
*
* NOTE: $attachOnce() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attachOnce() without the '$' prefix.
*/
$attachOnce<U>(op: Operator.fλ.Stateless<T, U>, ctx: CtxLike, callback: (transformedData: U) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* timeout
*
* callback
*
* NOTE: $attachOnce() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attachOnce() without the '$' prefix.
*/
$attachOnce<U>(op: Operator.fλ.Stateless<T, U>, timeout: number, callback: (transformedData: U) => void): Promise<U>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* callback
*
* NOTE: $attachOnce() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attachOnce() without the '$' prefix.
*/
$attachOnce<U>(op: Operator.fλ.Stateless<T, U>, callback: (transformedData: U) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* ctx
*
* timeout
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attachOnce() method )
*/
attachOnce<Q extends T>(op: (data: T) => data is Q, ctx: CtxLike, timeout: number, callback: (data: Q) => void): Promise<Q>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* ctx
*
* timeout
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attachOnce() method )
*/
attachOnce(op: (data: T) => boolean, ctx: CtxLike, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* ctx
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attachOnce() method )
*/
attachOnce<Q extends T>(op: (data: T) => data is Q, ctx: CtxLike, callback: (data: Q) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* ctx
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attachOnce() method )
*/
attachOnce(op: (data: T) => boolean, ctx: CtxLike, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* timeout
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attachOnce() method )
*/
attachOnce<Q extends T>(op: (data: T) => data is Q, timeout: number, callback: (data: Q) => void): Promise<Q>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* timeout
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attachOnce() method )
*/
attachOnce(op: (data: T) => boolean, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* ctx
*
* timeout
*
* callback
*/
attachOnce(ctx: CtxLike, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attachOnce() method )
*/
attachOnce<Q extends T>(op: (data: T) => data is Q, callback: (data: Q) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* callback
*
* NOTE: If you whish to use a fλ operator ( an operator that do not return a boolean )
* the '$' prefix should be used ( use the $attachOnce() method )
*/
attachOnce(op: (data: T) => boolean, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* ctx
*
* callback
*/
attachOnce(ctx: CtxLike, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* timeout
*
* callback
*/
attachOnce(timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* callback
*/
attachOnce(callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* ctx
*
* timeout
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachExtract<U>(op: Operator.fλ<T, U>, ctx: CtxLike, timeout: number, callback: (transformedData: U) => void): Promise<U>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* ctx
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachExtract<U>(op: Operator.fλ<T, U>, ctx: CtxLike, callback: (transformedData: U) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* timeout
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachExtract<U>(op: Operator.fλ<T, U>, timeout: number, callback: (transformedData: U) => void): Promise<U>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachExtract<U>(op: Operator.fλ<T, U>, callback: (transformedData: U) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* ctx
*
* timeout
*
* callback
*/
attachExtract<Q extends T>(op: (data: T) => data is Q, ctx: CtxLike, timeout: number, callback: (data: Q) => void): Promise<Q>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* ctx
*
* timeout
*
* callback
*/
attachExtract(op: (data: T) => boolean, ctx: CtxLike, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* ctx
*
* callback
*/
attachExtract<Q extends T>(op: (data: T) => data is Q, ctx: CtxLike, callback: (data: Q) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* ctx
*
* callback
*/
attachExtract(op: (data: T) => boolean, ctx: CtxLike, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* timeout
*
* callback
*/
attachExtract<Q extends T>(op: (data: T) => data is Q, timeout: number, callback: (data: Q) => void): Promise<Q>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* timeout
*
* callback
*/
attachExtract(op: (data: T) => boolean, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* ctx
*
* timeout
*/
attachExtract(ctx: CtxLike, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* callback
*/
attachExtract<Q extends T>(op: (data: T) => data is Q, callback: (data: Q) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* callback
*/
attachExtract(op: (data: T) => boolean, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* ctx
*
* callback
*/
attachExtract(ctx: CtxLike, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* timeout
*
* callback
*/
attachExtract(timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* callback
*/
attachExtract(callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* ctx
*
* timeout
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachPrepend<U>(op: Operator.fλ<T, U>, ctx: CtxLike, timeout: number, callback: (transformedData: U) => void): Promise<U>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* ctx
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachPrepend<U>(op: Operator.fλ<T, U>, ctx: CtxLike, callback: (transformedData: U) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* timeout
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachPrepend<U>(op: Operator.fλ<T, U>, timeout: number, callback: (transformedData: U) => void): Promise<U>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachPrepend<U>(op: Operator.fλ<T, U>, callback: (transformedData: U) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* ctx
*
* timeout
*
* callback
*/
attachPrepend<Q extends T>(op: (data: T) => data is Q, ctx: CtxLike, timeout: number, callback: (data: Q) => void): Promise<Q>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* ctx
*
* timeout
*
* callback
*/
attachPrepend(op: (data: T) => boolean, ctx: CtxLike, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* ctx
*
* callback
*/
attachPrepend<Q extends T>(op: (data: T) => data is Q, ctx: CtxLike, callback: (data: Q) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* ctx
*
* callback
*/
attachPrepend(op: (data: T) => boolean, ctx: CtxLike, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* timeout
*
* callback
*/
attachPrepend<Q extends T>(op: (data: T) => data is Q, timeout: number, callback: (data: Q) => void): Promise<Q>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* timeout
*
* callback
*/
attachPrepend(op: (data: T) => boolean, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* ctx
*
* timeout
*
* callback
*/
attachPrepend(ctx: CtxLike, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* callback
*/
attachPrepend<Q extends T>(op: (data: T) => data is Q, callback: (data: Q) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* callback
*/
attachPrepend(op: (data: T) => boolean, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* ctx
*
* callback
*/
attachPrepend(ctx: CtxLike, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* timeout
*
* callback
*/
attachPrepend(timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* callback
*/
attachPrepend(callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* ctx
*
* timeout
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachOncePrepend<U>(op: Operator.fλ.Stateless<T, U>, ctx: CtxLike, timeout: number, callback: (transformedData: U) => void): Promise<U>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* ctx
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachOncePrepend<U>(op: Operator.fλ.Stateless<T, U>, ctx: CtxLike, callback: (transformedData: U) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* timeout
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachOncePrepend<U>(op: Operator.fλ.Stateless<T, U>, timeout: number, callback: (transformedData: U) => void): Promise<U>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachOncePrepend<U>(op: Operator.fλ.Stateless<T, U>, callback: (transformedData: U) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* ctx
*
* timeout
*
* callback
*/
attachOncePrepend<Q extends T>(op: (data: T) => data is Q, ctx: CtxLike, timeout: number, callback: (data: Q) => void): Promise<Q>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* ctx
*
* timeout
*
* callback
*/
attachOncePrepend(op: (data: T) => boolean, ctx: CtxLike, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* ctx
*
* callback
*/
attachOncePrepend<Q extends T>(op: (data: T) => data is Q, ctx: CtxLike, callback: (data: Q) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* ctx
*
* callback
*/
attachOncePrepend(op: (data: T) => boolean, ctx: CtxLike, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* timeout
*
* callback
*/
attachOncePrepend<Q extends T>(op: (data: T) => data is Q, timeout: number, callback: (data: Q) => void): Promise<Q>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* timeout
*
* callback
*/
attachOncePrepend(op: (data: T) => boolean, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* ctx
*
* timeout
*
* callback
*/
attachOncePrepend(ctx: CtxLike, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* callback
*/
attachOncePrepend<Q extends T>(op: (data: T) => data is Q, callback: (data: Q) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* callback
*/
attachOncePrepend(op: (data: T) => boolean, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* ctx
*
* callback
*/
attachOncePrepend(ctx: CtxLike, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* timeout
*
* callback
*/
attachOncePrepend(timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* callback
*/
attachOncePrepend(callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* ctx
*
* timeout
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachOnceExtract<U>(op: Operator.fλ.Stateless<T, U>, ctx: CtxLike, timeout: number, callback: (transformedData: U) => void): Promise<U>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* ctx
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachOnceExtract<U>(op: Operator.fλ.Stateless<T, U>, ctx: CtxLike, callback: (transformedData: U) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* timeout
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachOnceExtract<U>(op: Operator.fλ.Stateless<T, U>, timeout: number, callback: (transformedData: U) => void): Promise<U>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - fλ
*
* callback
*
* NOTE: $attach() with '$' is to use only with fλ operators,
* if your operator return a boolean use the attach() without the '$' prefix.
*/
$attachOnceExtract<U>(op: Operator.fλ.Stateless<T, U>, callback: (transformedData: U) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* ctx
*
* timeout
*
* callback
*/
attachOnceExtract<Q extends T>(op: (data: T) => data is Q, ctx: CtxLike, timeout: number, callback: (data: Q) => void): Promise<Q>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* ctx
*
* timeout
*
* callback
*/
attachOnceExtract(op: (data: T) => boolean, ctx: CtxLike, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* ctx
*
* callback
*/
attachOnceExtract<Q extends T>(op: (data: T) => data is Q, ctx: CtxLike, callback: (data: Q) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* ctx
*
* callback
*/
attachOnceExtract(op: (data: T) => boolean, ctx: CtxLike, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* timeout
*
* callback
*/
attachOnceExtract<Q extends T>(op: (data: T) => data is Q, timeout: number, callback: (data: Q) => void): Promise<Q>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* timeout
*
* callback
*/
attachOnceExtract(op: (data: T) => boolean, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* ctx
*
* timeout
*/
attachOnceExtract(ctx: CtxLike, timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Type guard
*
* callback
*/
attachOnceExtract<Q extends T>(op: (data: T) => data is Q, callback: (data: Q) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* op - Filter
*
* callback
*/
attachOnceExtract(op: (data: T) => boolean, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* ctx
*
* callback
*/
attachOnceExtract(ctx: CtxLike, callback: (data: T) => void): this;
/**
* https://docs.evt.land/api/evt/attach
*
* timeout
*
* callback
*/
attachOnceExtract(timeout: number, callback: (data: T) => void): Promise<T>;
/**
* https://docs.evt.land/api/evt/attach
*
* callback
*/
attachOnceExtract(callback: (data: T) => void): this;
}