export type ReliabilityDimension = 'verification' | 'authority' | 'source' | 'review' | 'freshness' | 'sourceRef';

export interface FreshnessInterval {
  maxDays: number | null;
  score: number;
}

export interface ReliabilityWeightsConfig {
  weights: Record<ReliabilityDimension, number>;
  knockout: { enabled: boolean; floorScore: number };
  freshnessIntervals: FreshnessInterval[];
}

export interface ReliabilityInput {
  verificationStatus?: string;
  documentStatus?: string;
  authorityTier?: number;
  sourceType?: string;
  reviewCount: number;
  hasApproval: boolean;
  hasSourceRef: boolean;
  sourceRefQuality?: string;
  updatedAt: Date;
  now?: Date;
}

export interface ReliabilityOutput {
  compositeScore: number;
  dimensions: Record<ReliabilityDimension, number>;
  knockedOut: boolean;
}
