import type { ActiveRandomnessDeployment, RandomnessDeploymentFamily } from './randomness-deployments.js'; import { type RandomnessOracleSelectionEvaluation, type RandomnessOracleSelectionMetadata, type RandomnessOracleSelectionTier, type RandomnessOracleSelectorCandidate } from './randomness-selector.js'; export type RandomnessRemediationAction = 'none' | 'retry' | 'reroll' | 'recreate'; export type RandomnessInspectionStatus = 'created' | 'waiting' | 'ready' | 'revealed' | 'settled'; export interface RandomnessOracleHealthSummary { oracleId: string; gatewayUrl: string | null; version: string | null; liveHealthy: boolean; isEligible: boolean; isOnQueue: boolean; isVerified: boolean; heartbeatFresh: boolean; quoteFresh: boolean; restricted?: boolean; gatewayEnabled?: boolean; pullOracleEnabled?: boolean; lastHeartbeatUnix?: number; validUntilUnix?: number; activeConnections?: number; totalSubscriptions?: number; totalFeeds?: number; evaluation: RandomnessOracleSelectionEvaluation; } export interface RandomnessRecommendation { action: RandomnessRemediationAction; reason: string; } export interface RandomnessCurrentSelectionSummary { oracleId: string; tier: RandomnessOracleSelectionTier; majorityVersion: string | null; liveHealthyCandidateCount: number; fallbackCandidateCount: number; matchesAssignedOracle: boolean; } export interface RandomnessAssignedOracleSummary { oracleId: string; canonicalOracleId?: string; gatewayUrl: string | null; signingAddress?: string | null; } export interface RandomnessInspectionReport> { family: RandomnessDeploymentFamily; deployment: Pick; randomnessId: string; status: RandomnessInspectionStatus; requestState: RequestState; assignedOracle?: RandomnessAssignedOracleSummary; assignedOracleHealth?: RandomnessOracleHealthSummary; currentSelection?: RandomnessCurrentSelectionSummary; selectionMetadata?: RandomnessOracleSelectionMetadata; recommendation: RandomnessRecommendation; } export interface DetermineRandomnessRemediationArgs { family: RandomnessDeploymentFamily; committed: boolean; ready: boolean; resolved: boolean; assignedOracleId?: string | null; selectedOracleId?: string | null; assignedOracleEligible?: boolean; } export declare function getRandomnessOracleEvaluation(metadata: RandomnessOracleSelectionMetadata | undefined, oracleId: string): RandomnessOracleSelectionEvaluation | undefined; export declare function summarizeRandomnessOracleCandidate(candidate: T, metadata?: RandomnessOracleSelectionMetadata): RandomnessOracleHealthSummary; export declare function buildCurrentSelectionSummary(params: { assignedOracleId?: string | null; metadata: RandomnessOracleSelectionMetadata; selectedOracleId: string; }): RandomnessCurrentSelectionSummary; export declare function determineRandomnessRemediation({ family, committed, ready, resolved, assignedOracleId, selectedOracleId, assignedOracleEligible, }: DetermineRandomnessRemediationArgs): RandomnessRecommendation; //# sourceMappingURL=randomness-remediation.d.ts.map