import type { KbxStatusSemantic } from './status' export interface KbxWorkflowStateDefinition { value: string label: string semantic: KbxStatusSemantic terminal?: boolean } export interface KbxWorkflowTransitionDefinition { id: string from: string[] to: string label: string permission?: string confirm?: boolean reasonRequired?: boolean } export interface KbxWorkflowDefinition { id: string version: string states: KbxWorkflowStateDefinition[] transitions: KbxWorkflowTransitionDefinition[] } export function allowedKbxTransitions(workflow: KbxWorkflowDefinition, current: string) { return workflow.transitions.filter(x => x.from.includes(current)) }