export interface Logger { debug: (...args: any[]) => void; info: (...args: any[]) => void; warn: (...args: any[]) => void; error: (...args: any[]) => void; } export type ToolSignature = { input: I; output: O; }; export type ToolRegistry = Record>; export type WorkflowTools = { [K in keyof TTools]: (input: TTools[K]['input']) => Promise; }; export type StepOptions = { retry?: number; }; export interface StepFn { (name: string, fn: () => Promise): Promise; (name: string, options: StepOptions, fn: () => Promise): Promise; } export interface BaseWorkflowContext { step: StepFn; logger: Logger; tools: WorkflowTools; } export type WorkflowFn = BaseWorkflowContext> = (input: TInput, context: TContext) => Promise; export declare function createContext(tools: WorkflowTools, stepFn?: StepFn, logger?: Logger): BaseWorkflowContext; export declare const makeStepFn: () => StepFn;