package com.correx.core.approvals.domain

import com.correx.core.approvals.model.ApprovalContext
import com.correx.core.approvals.model.ApprovalDecision
import com.correx.core.approvals.model.ApprovalGrant
import com.correx.core.approvals.model.DomainApprovalRequest
import kotlinx.datetime.Instant

interface ApprovalEngine {
    fun evaluate(
        request: DomainApprovalRequest,
        context: ApprovalContext,
        grants: List<ApprovalGrant>,
        now: Instant
    ): ApprovalDecision
}
