/**
 * Datenpunktkatalog & Datenschutzinformationen-Generator
 *
 * Dieses Modul erweitert das SDK Einwilligungen-Modul um:
 * - Datenpunktkatalog mit 28 vordefinierten + kundenspezifischen Datenpunkten
 * - Automatische Privacy Policy Generierung
 * - Cookie Banner Konfiguration
 * - Retention Matrix Visualisierung
 *
 * @module lib/sdk/einwilligungen
 */

// =============================================================================
// TYPES
// =============================================================================

export * from './types'

// =============================================================================
// CATALOG
// =============================================================================

export {
  PREDEFINED_DATA_POINTS,
  RETENTION_MATRIX,
  DEFAULT_COOKIE_CATEGORIES,
  getDataPointById,
  getDataPointByCode,
  getDataPointsByCategory,
  getDataPointsByLegalBasis,
  getDataPointsByCookieCategory,
  getDataPointsRequiringConsent,
  getHighRiskDataPoints,
  countDataPointsByCategory,
  countDataPointsByRiskLevel,
  createDefaultCatalog,
  searchDataPoints,
} from './catalog/loader'

// =============================================================================
// CONTEXT
// =============================================================================

export {
  EinwilligungenProvider,
  useEinwilligungen,
  initialState as einwilligungenInitialState,
  einwilligungenReducer,
} from './context'

// =============================================================================
// GENERATORS (to be implemented)
// =============================================================================

// Privacy Policy Generator
export { generatePrivacyPolicy, generatePrivacyPolicySections } from './generator/privacy-policy'

// Cookie Banner Generator
export { generateCookieBannerConfig, generateEmbedCode } from './generator/cookie-banner'

// =============================================================================
// EXPORT
// =============================================================================

// PDF Export
export {
  generatePDFContent as generatePrivacyPolicyPDFContent,
  generatePDFBlob as generatePrivacyPolicyPDFBlob,
  generatePDFFilename as generatePrivacyPolicyPDFFilename,
} from './export/pdf'
export type { PDFExportOptions as PrivacyPolicyPDFExportOptions } from './export/pdf'

// DOCX Export
export {
  generateDOCXContent as generatePrivacyPolicyDOCXContent,
  generateDOCXBlob as generatePrivacyPolicyDOCXBlob,
  generateDOCXFilename as generatePrivacyPolicyDOCXFilename,
} from './export/docx'
export type { DOCXExportOptions as PrivacyPolicyDOCXExportOptions } from './export/docx'
