import type { BoardRegistry } from '../boards/index.js'; import type { FactoryDeferredDecisionRecord, WorkItemRow, WorkItemsStorage } from '../storage/domains/work-items/base.js'; type ApplicabilityRecord = Pick; /** The seat a skill run needs; other decision types are not tied to one phase. */ export declare function skillDecisionRole(record: Pick): string | undefined; /** * Whether a person may retry this decision: it failed, its failure is one a rerun * can fix, and the card has not left the phase it was decided for. Overtaken is * resolved by the caller (see `overtakenDecisionIds`) because it needs the card. */ export declare function decisionRetryable(record: Pick, overtaken: boolean): boolean; /** * Whether the card has moved on from the phase a run was decided for: any stage it * now sits in was entered after the decision. Anchored on the decision rather than * an attempt, so a retry after the move is still recognised as stale, and a card * that left and came back to the same role is a new phase entry. */ export declare function decisionOvertaken(input: { boards: BoardRegistry; item: WorkItemRow | null; record: ApplicabilityRecord; role: string; /** Decisions from the same rule evaluation as `record`. */ siblings: ApplicabilityRecord[]; }): boolean; /** Ids of the given skill-run decisions whose card has moved on from their phase. */ export declare function overtakenDecisionIds(workItems: Pick, boards: BoardRegistry, scope: { orgId: string; factoryProjectId: string; }, records: FactoryDeferredDecisionRecord[]): Promise>; export {}; //# sourceMappingURL=decision-applicability.d.ts.map