import { type WorkflowConfig, type WorkflowRestartPoint, type WorkflowResumePoint } from '../../../core/models/index.js'; import type { SelectOptionItem } from '../../../shared/prompt/index.js'; import { type TaskRetryStartPathContext } from '../taskRetryStartPath.js'; export type TaskRetryStartSelection = { kind: 'resume'; resumePoint: WorkflowResumePoint; } | { kind: 'restart'; restartPoint: WorkflowRestartPoint; }; export interface TaskRetryStartSelectionResult { label: string; selection: TaskRetryStartSelection; } export type TaskRetryStartOptionSelector = (message: string, options: SelectOptionItem[], defaultValue: string) => Promise; export interface SelectTaskRetryStartOptions extends TaskRetryStartPathContext { resumePoint?: WorkflowResumePoint; preferredRootStep?: string; } /** Public, opaque choices shared by CLI and Web UI. */ export interface TaskRetryStartOption { readonly id: string; readonly label: string; readonly selectable: boolean; readonly description?: string; } export interface TaskRetryStartOptionsModel { readonly options: readonly TaskRetryStartOption[]; readonly defaultId: string; } /** Engine-owned retry fields derived from one opaque start selection. */ export interface TaskRetryStartOwnership { readonly startStep?: string; readonly resumePoint?: WorkflowResumePoint; readonly restartPoint?: WorkflowRestartPoint; } /** Resolve retry start ownership consistently for CLI and central Web UI runs. */ export declare function resolveTaskRetryStartOwnership(selectedStart: TaskRetryStartSelection, workflowConfig: Pick): TaskRetryStartOwnership; /** Build choices without performing terminal I/O. */ export declare function buildTaskRetryStartOptions(rootWorkflow: WorkflowConfig, options: SelectTaskRetryStartOptions): TaskRetryStartOptionsModel; /** Resolve an opaque choice against the current workflow snapshot. */ export declare function resolveTaskRetryStartOption(rootWorkflow: WorkflowConfig, options: SelectTaskRetryStartOptions, selectedId: string): TaskRetryStartSelectionResult; export declare function selectTaskRetryStart(rootWorkflow: WorkflowConfig, options: SelectTaskRetryStartOptions, selectOption: TaskRetryStartOptionSelector): Promise; //# sourceMappingURL=taskRetryStartSelection.d.ts.map