import type { BId, CommonFields } from "@raytio/types"; import type { RuleData, ScoreConfig } from "./types"; import type { ScoreResult } from "./calculateScore"; /** Standard badge states - consistent across all badges */ export type BadgeState = "not_met" | "partially_met" | "fully_met"; /** Display configuration for a single badge state */ export type BadgeStateDisplay = { label: string; color: string; icon: string; }; /** Badge definition as stored in dsm_schema_badges */ export type BadgeDefinition = CommonFields & { name: string; display: { states: Record; }; ruleset: ScoreConfig; }; /** Result of evaluating a badge for a user */ export type BadgeResult = { badgeId: string; badgeName: string; state: BadgeState; display: BadgeStateDisplay; diagnostics: ScoreResult["diagnostics"]; }; /** * Evaluate a single badge definition against user data. * Thin wrapper around calculateScore() -- threshold names map to badge states. */ export declare function evaluateBadge(badge: BadgeDefinition, ruleData: RuleData): Promise; /** * Evaluate all active badge definitions against user data. */ export declare function evaluateUserBadges(badges: BadgeDefinition[], ruleData: RuleData): Promise;