/**
 * @breakpilot/consent-sdk
 *
 * DSGVO/TTDSG-konformes Consent Management SDK
 *
 * @example
 * ```typescript
 * import { ConsentManager } from '@breakpilot/consent-sdk';
 *
 * const consent = new ConsentManager({
 *   apiEndpoint: 'https://consent.example.com/api/v1',
 *   siteId: 'site_abc123',
 * });
 *
 * await consent.init();
 *
 * if (consent.hasConsent('analytics')) {
 *   // Analytics laden
 * }
 * ```
 */

// Core
export { ConsentManager } from './core/ConsentManager';
export { ConsentStorage } from './core/ConsentStorage';
export { ScriptBlocker } from './core/ScriptBlocker';
export { ConsentAPI } from './core/ConsentAPI';

// Utils
export { EventEmitter } from './utils/EventEmitter';
export { generateFingerprint, generateFingerprintSync } from './utils/fingerprint';

// Types
export type {
  // Categories
  ConsentCategory,
  ConsentCategories,
  ConsentVendors,

  // State
  ConsentState,
  ConsentInput,

  // Config
  ConsentConfig,
  ConsentUIConfig,
  ConsentBehaviorConfig,
  TCFConfig,
  PWAConfig,
  BannerPosition,
  BannerLayout,
  BannerTheme,

  // Vendors
  ConsentVendor,
  CookieInfo,

  // API
  ConsentAPIResponse,
  SiteConfigResponse,
  CategoryConfig,
  LegalConfig,

  // Events
  ConsentEventType,
  ConsentEventCallback,
  ConsentEventData,

  // Storage
  ConsentStorageAdapter,

  // Translations
  ConsentTranslations,
  SupportedLanguage,
} from './types';

// Version
export { SDK_VERSION } from './version';

// Default export
export { ConsentManager as default } from './core/ConsentManager';
