export type ExecutorNextFunction = (node: NodeName | NodeName[]) => void; export type ExecutorExitFunction = (exitWith?: Error | NodeName | NodeName[]) => void; export type ExecutorRetryFunction = (error?: Error) => void; export type Executor = (data: DataType, next: ExecutorNextFunction, exit: ExecutorExitFunction, retry: ExecutorRetryFunction, error?: Error) => Promise | any; export type Middleware = (data: DataType, next: ExecutorNextFunction, exit: ExecutorExitFunction) => Promise | any;