import { INodeContext } from '../../types/runtime';
import { StepConfig } from '../../types/config';

export interface ScheduleOptions {
    delayMs?: number;
    runAt?: Date;
    // Could add priority, queue name etc.
}

export interface IScheduler {
    // Schedule a specific step/node execution
    scheduleStep(step: StepConfig, context: INodeContext, options?: ScheduleOptions): Promise<string>; // Returns task ID
    // Cancel a scheduled task
    cancel(taskId: string): Promise<boolean>;
}