interface SecurityCheckerOptions {
    timeout: number;
    userAgent: string;
    followRedirects: boolean;
    maxRedirects: number;
    checkExternalResources: boolean;
    checkBlacklists: boolean;
    performContentAnalysis: boolean;
  }
  
  interface MalwarePattern {
    pattern: RegExp;
    severity: 'critical' | 'high' | 'medium' | 'low';
    type: string;
  }
  
  interface SecurityHeader {
    name: string;
    expected: RegExp;
    recommendation: string;
  }
  
  interface Issue {
    type: string;
    severity: 'critical' | 'high' | 'medium' | 'low' | 'info';
    title: string;
    recommendation: string;
    details?: string | null;
  }
  
  interface SecurityResults {
    url: string;
    domain: string;
    scanTime: string;
    summary: SecuritySummary;
    issues: Issue[];
    findings: SecurityFindings;
    redirectChain: string[];
    metadata: {
      serverInfo: string | null;
      technologies: string[];
    };
    remediation: any[];
    scanDuration?: number;
    executiveSummary?: any;
  }


interface CookieIssue {
  name: string;
  attributes: string[];
  issues: string[];
}

interface TrackingIssue {
  type: 'analytics' | 'ad' | 'social';
  service: string;
  domains: string[];
}

interface Technology {
  name: string;
  version?: string;
  confidence: number;
}
  
  interface SecuritySummary {
    status: 'secure' | 'warning' | 'suspicious' | 'compromised';
    riskScore: number;
    criticalIssues: number;
    highIssues: number;
    mediumIssues: number;
    lowIssues: number;
    infos: number;
  }
  
  interface SecurityFindings {
    malware: any[];
    vulnerabilities: any[];
    misconfigurations: any[];
    blacklists: any;
    ssl: any;
    headers: any;
    contentAnalysis: any;
    externalResources: Resource[];
    cmsInfo: any;
  }
  
  interface Resource {
    type: string;
    url: string;
  }
  

interface SEOSpamResult {
  score: number;
  hiddenContentCount: number;
  keywordDensity: Record<string, number>;
  suspiciousKeywords: string[];
  linkDensity?: number;
}

interface SecurityHeaders {
  csp?: string;
  permissionsPolicy?: string;
  strictTransportSecurity?: string;
}

interface FetchConfig {
  retries?: number;
  backoffBase?: number;
  timeout?: number;
}

interface ScannerConfig {
  checks: {
    sri: boolean;
    csp: boolean;
    malware: boolean;
    headers: boolean;
  };
  thresholds: {
    maxResponseSize: number;
    timeout: number;
  };
}

interface SecurityIssue {
  type: 'error' | 'warning' | 'info';
  severity: 'critical' | 'high' | 'medium' | 'low';
  message: string;
  remediation: string;
  source?: string;
}