import type { OracleInfo } from './types/crossbar.js'; import type { HealthyOraclesResponse, OracleHealthData } from './types/gateway.js'; export type RandomnessOracleSelectionTier = 'live' | 'fallback'; export type RandomnessOracleRejectionReason = 'missing-gateway' | 'not-on-queue' | 'verification-failed' | 'heartbeat-stale' | 'quote-expired' | 'restricted' | 'gateway-disabled' | 'pull-oracle-disabled' | 'version-mismatch' | 'health-data-unavailable'; export interface RandomnessOracleSelectorCandidate { oracleId: string; gatewayUrl?: string | null; version?: string | null; isOnQueue: boolean; isVerified: boolean; heartbeatFresh: boolean; quoteFresh: boolean; liveHealthy: boolean; restricted?: boolean; gatewayEnabled?: boolean; pullOracleEnabled?: boolean; lastHeartbeatUnix?: number; validUntilUnix?: number; activeConnections?: number; totalSubscriptions?: number; totalFeeds?: number; } export interface RandomnessOracleSelectionEvaluation { oracleId: string; tier?: RandomnessOracleSelectionTier; version?: string | null; rejectionReasons: RandomnessOracleRejectionReason[]; liveHealthy: boolean; } export interface RandomnessOracleSelectionMetadata { tier: RandomnessOracleSelectionTier; majorityVersion: string | null; liveHealthyCandidateCount: number; fallbackCandidateCount: number; evaluations: RandomnessOracleSelectionEvaluation[]; } export interface RandomnessOracleSelectionResult { candidate: T; metadata: RandomnessOracleSelectionMetadata; } export interface HealthyOracleGatewaySnapshot { gatewayUrl: string; response: HealthyOraclesResponse; } export interface MergedHealthyOracleIndex { byPullOracle: Map; bySecp256k1Key: Map; majorityVersion: string | null; } export declare function evaluateRandomnessOracleCandidate(candidate: RandomnessOracleSelectorCandidate): RandomnessOracleSelectionEvaluation; export declare function isRandomnessOracleCandidateEligible(candidate: RandomnessOracleSelectorCandidate): boolean; export declare function selectRandomnessOracle(candidates: T[]): RandomnessOracleSelectionResult; export declare function fetchHealthyOracleSnapshots(gatewayUrls: string[]): Promise; export declare function mergeHealthyOracleSnapshots(snapshots: HealthyOracleGatewaySnapshot[]): MergedHealthyOracleIndex; export declare function createFallbackOracleInfo(oracle: OracleInfo): RandomnessOracleSelectorCandidate; //# sourceMappingURL=randomness-selector.d.ts.map