/**
 * Finite public projection contract for the review queue surface.
 *
 * Exposes only bounded enums and sanitized labels. Drops items that reference
 * provider IDs, paths, secrets, audit IDs, etc. via the shared
 * isUnsafePublicString predicate.
 */
import { isUnsafePublicString, readPublicTitle, } from "./runProjectionContract.js";
export const REVIEW_PROJECTION_PUBLIC_SOURCE = "review-queue";
export const REVIEW_PROJECTION_STATUSES = [
    "pending",
    "in-review",
    "approved",
    "changes-requested",
    "revoked",
];
export const REVIEW_PROJECTION_TONES = [
    "primary",
    "success",
    "warning",
    "destructive",
    "muted",
];
export const REVIEW_PROJECTION_DECISIONS = [
    "approve",
    "request-changes",
    "revoke",
    "defer",
];
export function toneForReviewStatus(status) {
    switch (status) {
        case "pending":
            return "warning";
        case "in-review":
            return "primary";
        case "approved":
            return "success";
        case "revoked":
            return "destructive";
        case "changes-requested":
            return "warning";
    }
}
export function readReviewLabel(value) {
    return readPublicTitle(value ?? null);
}
export { isUnsafePublicString };
