function input<T extends Record<string, unknown>>(): T {
  return {} as T
}

const _registry = {
  refreshEvaluationAlignmentWorkflow: input<{
    readonly organizationId: string
    readonly projectId: string
    readonly issueId: string
    readonly evaluationId: string
  }>(),
  optimizeEvaluationWorkflow: input<{
    readonly organizationId: string
    readonly projectId: string
    readonly issueId: string
    readonly evaluationId: string | null
    readonly jobId: string
    readonly billingOperationId: string
  }>(),
  issueDiscoveryWorkflow: input<{
    readonly organizationId: string
    readonly projectId: string
    readonly scoreId: string
  }>(),
  assignScoreToKnownIssueWorkflow: input<{
    readonly organizationId: string
    readonly projectId: string
    readonly scoreId: string
    readonly issueId: string
  }>(),
  publishAnnotationWorkflow: input<{
    readonly organizationId: string
    readonly projectId: string
    readonly scoreId: string
    readonly preEnrichedFeedback?: string
  }>(),
  billingOverageWorkflow: input<{
    readonly organizationId: string
    readonly periodStart: string
    readonly periodEnd: string
    readonly snapshotOverageCredits: number
  }>(),
  flaggerWorkflow: input<{
    readonly organizationId: string
    readonly projectId: string
    readonly traceId: string
    readonly flaggerId: string
    readonly flaggerSlug: string
  }>(),
  seedDemoProjectWorkflow: input<{
    readonly organizationId: string
    readonly projectId: string
    readonly queueAssigneeUserIds: readonly string[]
    readonly apiKeyId: string
    readonly timelineAnchorIso: string
  }>(),
}

export type WorkflowRegistry = typeof _registry
export const WORKFLOW_NAMES = Object.keys(_registry) as (keyof WorkflowRegistry & string)[]
