export interface SecurityCheckerOptions {
  timeout: number;
  userAgent: string;
  followRedirects: boolean;
  maxRedirects: number;
  checkExternalResources: boolean;
  checkBlacklists: boolean;
  performContentAnalysis: boolean;
}

export interface SecurityIssue {
  type: string;
  severity: 'critical' | 'high' | 'medium' | 'low' | 'info';
  title: string;
  recommendation: string;
  details?: string;
  category?: string;

}

export interface SecurityResults {
  results: { criticalIssues: number; highIssues: number; mediumIssues: number; lowIssues: number; infos: number; };
  url: string;
  domain: string;
  scanTime: string;
  summary: {
    riskScore: number;
    status: string;
    criticalIssues: number;
    highIssues: number;
    mediumIssues: number;
    lowIssues: number;
    infos: number;
    details: string[];
  };
  headers: {
    status: 'secure' | 'warning' | 'vulnerable' | 'compromised' | 'critical';
    severity: number;
    details?: string[];
    headerItems?: any[];
  };
  issues: SecurityIssue[];
  findings: {
    headers: Record<string, string | null>;
    headerStatus?: any[];
    blacklists?: BlacklistItem[];
    [key: string]: any;
  };

  redirectChain: string[];
  metadata: {
    serverInfo: string | null;
    technologies: any[];
  };
  remediation: any[];
  scanDuration?: number;
  executiveSummary?: any;
}

export interface MalwarePattern {
  pattern: RegExp;
  severity: 'critical' | 'high' | 'medium' | 'low';
  type: string;
}

export interface SecurityHeader {
  missingImpact?: string;
  invalidImpact?: string;
  invalidDetails?: string;
  name?: string;
  expected?: RegExp;
  recommendation?: string;
}

export interface Resource {
  type: string;
  url: string;
}

export interface BlacklistItem {
  provider: string;
  threatType: string;
  platformType: string;
  timestamp: string;
}



