import { Debugger } from 'debug'; import { Task } from './engine'; import { ValueQueueManager } from './engine/value-queue-manager'; export declare enum FlowStateEnum { Ready = "Ready", Running = "Running", Finished = "Finished", Pausing = "Pausing", Paused = "Paused", Stopping = "Stopping", Stopped = "Stopped" } export declare enum FlowTransitionEnum { Start = "Start", Finished = "Finished", Reset = "Reset", Pause = "Pause", Paused = "Paused", Resume = "Resume", Stop = "Stop", Stopped = "Stopped" } export type AnyValue = any; export type TransformTemplate = AnyValue; export type OptPromise = T | Promise; export interface ValueMap { [key: string]: AnyValue; } export type GenericValueMap = ValueMap; export interface ITaskResolver { exec(params: ValueMap, context?: ValueMap, task?: Task, debug?: Debugger, log?: LoggerFn): OptPromise; } export declare class TaskResolver implements ITaskResolver { exec(_params: ValueMap, _context?: ValueMap, _task?: Task, _debug?: Debugger, _log?: LoggerFn): OptPromise; } export type TaskResolverFn = (params: ValueMap, context?: ValueMap, task?: Task, debug?: Debugger, log?: LoggerFn) => OptPromise; export type TaskResolverClass = typeof TaskResolver; export type TaskResolverExecutor = TaskResolverClass | TaskResolverFn; export declare class TaskResolverMap { [key: string]: TaskResolverExecutor; } export interface TaskMap { [code: string]: Task; } export interface TaskRunStatus { solvedReqs: ValueQueueManager; solvedResults: ValueMap; } export interface FlowedPlugin { resolverLibrary: TaskResolverMap; } export interface FlowedLogger { log(entry: FlowedLogEntry): void; } export interface FlowedLogEntry { timestamp: Date; level: string; eventType: string; message: string; objectId?: string; tags?: string[]; extra?: ValueMap; } export type LoggerFn = ({ n, m, mp, l, e }: { n?: number; m: string; mp?: ValueMap; l?: string; e?: string; }) => void;