import { Operator } from "./Operator"; declare type EvtCore = import("../EvtCore").EvtCore; declare type Ctx = import("../Ctx").Ctx; export declare type Handler | undefined = Ctx | undefined> = Handler.PropsFromArgs & Handler.PropsFromMethodName & Readonly<{ detach(): boolean; promise: Promise; }>; export declare namespace Handler { /** Handlers params that come from the arguments passed to the method invoked */ type PropsFromArgs = { ctx: CtxProp; timeout: number | undefined; op: Operator; callback: ((transformedData: U) => void) | undefined; }; /** Handlers params that are implicitly specified by the method used: * attachOnce => once * attachOncePrepend => once + prepend * waitFor => once + async * ... */ type PropsFromMethodName = PropsFromMethodName.Sync | PropsFromMethodName.Async; namespace PropsFromMethodName { type Common = Readonly<{ prepend: true; extract: true; } | { prepend: boolean; extract: false; }>; export type Sync = Common & Readonly<{ async: false; once: boolean; }>; export type Async = Common & Readonly<{ async: true; once: true; }>; export {}; } type WithEvt = { handler: Handler; evt: EvtCore; }; } export {};