// Core domain types - mirror Rust types exactly

export interface Claim {
  subject: string;
  predicate: string;
  object: string;
  confidence: number;
  quote: string;
  source: string | null;
}

export type ClaimStatus = "new" | "matches" | "contradicts";

export interface RelatedClaim {
  claim: Claim;
  relationship: string;
  source: string;
}

export interface ClaimCheck {
  claim: Claim;
  status: ClaimStatus;
  related: RelatedClaim[];
}

// Settings types
export interface Settings {
  llmProvider: "anthropic" | "groq" | "local";
  apiKey: string | null;
  autoSave: boolean;
  notificationsEnabled: boolean;
}

// UI state types
export interface ExtractionState {
  status: "idle" | "extracting" | "checking" | "error";
  error: string | null;
}
