/**
 * Vendor & Contract Compliance Module (VVT/RoPA)
 *
 * Public exports for:
 * - VVT (Verarbeitungsverzeichnis) - Art. 30 DSGVO Controller-Perspektive
 * - RoPA (Records of Processing Activities) - Processor-Perspektive
 * - Vendor Register - Lieferanten-/Auftragsverarbeiter-Verwaltung
 * - Contract Reviewer - LLM-gestuetzte Vertragspruefung mit Citations
 * - Risk & Controls - Risikobewertung und Massnahmenmanagement
 * - Audit Reports - Automatisierte Berichtsgenerierung
 */

// ==========================================
// TYPES
// ==========================================
export * from './types'

// ==========================================
// CONTEXT & HOOKS
// ==========================================
export {
  VendorComplianceProvider,
  useVendorCompliance,
} from './context'

// ==========================================
// CATALOGS
// ==========================================
export {
  // Processing Activity Templates
  PROCESSING_ACTIVITY_TEMPLATES,
  PROCESSING_ACTIVITY_CATEGORY_META,
  getTemplatesByCategory,
  getTemplateById,
  getGroupedTemplates,
  createFormDataFromTemplate,
  type ProcessingActivityTemplate,
  type ProcessingActivityCategory,
} from './catalog/processing-activities'

export {
  // Vendor Templates
  VENDOR_TEMPLATES,
  COUNTRY_RISK_PROFILES,
  getVendorTemplateById,
  getVendorTemplatesByCategory,
  getCountryRiskProfile,
  requiresTransferMechanism,
  getSuggestedTransferMechanisms,
  calculateTemplateRiskScore,
  createVendorFormDataFromTemplate,
  getEUEEACountries,
  getAdequateCountries,
  getHighRiskCountries,
  type VendorTemplate,
  type CountryRiskProfile,
  type RiskFactorWeight,
} from './catalog/vendor-templates'

export {
  // Legal Basis
  LEGAL_BASIS_INFO,
  STANDARD_RETENTION_PERIODS,
  getLegalBasisInfo,
  getStandardLegalBases,
  getSpecialCategoryLegalBases,
  getAppropriateLegalBases,
  getRetentionPeriod,
  getRetentionPeriodsForCategory,
  getLongestRetentionPeriod,
  formatRetentionPeriod,
  type LegalBasisInfo,
  type RetentionPeriodInfo,
} from './catalog/legal-basis'

// ==========================================
// CONTRACT REVIEW
// ==========================================
export {
  // Analyzer
  analyzeContract,
  transformAnalysisResponse,
  verifyCitation,
  getCitationContext,
  highlightCitations,
  calculateComplianceScore as calculateContractComplianceScore,
  CONTRACT_REVIEW_SYSTEM_PROMPT,
  CONTRACT_CLASSIFICATION_PROMPT,
  METADATA_EXTRACTION_PROMPT,
  type ContractAnalysisRequest,
  type ContractAnalysisResponse,
  type ContractPartyInfo,
  type ExtractedMetadata,
  type AnalysisScope,
  type ComplianceScoreBreakdown,
} from './contract-review/analyzer'

export {
  // Checklists
  AVV_CHECKLIST,
  INCIDENT_CHECKLIST,
  TRANSFER_CHECKLIST,
  SLA_LIABILITY_CHECKLIST,
  CHECKLIST_GROUPS,
  getRequiredChecklistItems,
  getChecklistItemsByCategory,
  getChecklistItemById,
  calculateChecklistComplianceScore as calculateChecklistScore,
  type ChecklistItem,
  type ChecklistGroup,
} from './contract-review/checklists'

export {
  // Findings
  FINDING_TEMPLATES,
  SEVERITY_DEFINITIONS,
  FINDING_TYPE_DEFINITIONS,
  getFindingTemplateById,
  getFindingTemplatesByCategory,
  getFindingTemplatesByType,
  getFindingTemplatesBySeverity,
  getSeverityColorClass,
  sortFindingsBySeverity,
  countFindingsBySeverity,
  getOverallSeverity,
  type FindingTemplate,
} from './contract-review/findings'

// ==========================================
// RISK & CONTROLS
// ==========================================
export {
  // Risk Calculator
  RISK_FACTOR_DEFINITIONS,
  calculateVendorInherentRisk,
  calculateProcessingActivityInherentRisk,
  calculateResidualRisk,
  generateRiskMatrix,
  getRiskLevelColor,
  calculateRiskTrend,
  type RiskFactorDefinition,
  type RiskContext,
  type RiskMatrixCell,
  type RiskTrend,
} from './risk/calculator'

export {
  // Controls Library
  CONTROLS_LIBRARY,
  getAllControls,
  getControlsByDomain,
  getControlById,
  getRequiredControls,
  getControlsByFrequency,
  getVendorControls,
  getProcessingActivityControls,
  getControlsGroupedByDomain,
  getControlDomainMeta,
  calculateControlCoverage,
} from './risk/controls-library'

// ==========================================
// EXPORT UTILITIES
// ==========================================
export {
  // VVT Export
  type VVTExportOptions,
  type VVTExportResult,
  type VVTRow,
  transformToVVTRows,
  generateVVTJson,
  generateVVTCsv,
  hasSpecialCategoryData,
  hasThirdCountryTransfers,
  generateComplianceSummary,
  // Vendor Audit Pack
  type VendorAuditPackOptions,
  type VendorAuditSection,
  type VendorAuditPackResult,
  generateVendorAuditPack,
  generateVendorAuditJson,
  // RoPA Export
  type RoPAExportOptions,
  type RoPARow,
  type RoPAExportResult,
  transformToRoPARows,
  generateRoPAJson,
  generateRoPACsv,
  generateProcessorSummary,
  validateRoPACompleteness,
} from './export'
