import { Result } from 'neverthrow'; import { PrTask } from './pr_task.js'; import { AcceptanceCriterion } from './acceptance_criterion.js'; type UpdateProgress = (task: PrTask, updates: ProgressUpdateRequest) => Result; type EvaluateCompletion = (criteria: readonly AcceptanceCriterion[]) => ProgressSummary; export type ProgressUpdateRequest = { readonly criteriaUpdates: readonly CriteriaUpdate[]; }; export type CriteriaUpdate = { readonly id: string; readonly completed: boolean; }; export type ProgressUpdateResult = { readonly updatedTask: PrTask; readonly progress: ProgressSummary; }; export type ProgressSummary = { readonly completed: number; readonly total: number; readonly percentage: number; readonly allCompleted: boolean; }; export type ProgressError = { readonly type: 'InvalidStatus' | 'CriteriaNotFound' | 'NotAssigned'; readonly message: string; }; export declare const Progress: { readonly update: UpdateProgress; readonly evaluateCompletion: EvaluateCompletion; readonly toError: (type: ProgressError["type"], message: string) => ProgressError; }; export {}; //# sourceMappingURL=progress.d.ts.map