/**
 * AI Compliance SDK - Main Export
 */

// Types
export * from './types'

// Context & Provider
export { SDKProvider, useSDK, SDKContext, initialState } from './context'

// Export utilities
export { exportToPDF, exportToZIP, downloadExport } from './export'
export type { ExportOptions } from './export'

// API Client
export {
  SDKApiClient,
  getSDKApiClient,
  resetSDKApiClient,
} from './api-client'
export type {
  APIResponse,
  StateResponse,
  SaveStateRequest,
  CheckpointValidationResult,
  APIError,
} from './api-client'

// Sync Manager
export {
  StateSyncManager,
  createStateSyncManager,
} from './sync'
export type {
  SyncStatus,
  SyncState,
  ConflictResolution,
  SyncOptions,
  SyncCallbacks,
} from './sync'

// SDK Backend Client (RAG + LLM)
export {
  SDKBackendClient,
  getSDKBackendClient,
  resetSDKBackendClient,
  isLegalQuery,
  extractRegulationReferences,
} from './sdk-client'
export type {
  SearchResult,
  SearchResponse,
  CorpusStatus,
  GenerateRequest,
  GenerateResponse,
} from './sdk-client'

// Compliance Scope Engine
export type {
  ComplianceDepthLevel,
  ComplianceScores,
  ComplianceScopeState,
  ScopeDecision,
  ScopeProfilingAnswer,
  ScopeDocumentType,
} from './compliance-scope-types'
export {
  DEPTH_LEVEL_LABELS,
  DEPTH_LEVEL_DESCRIPTIONS,
  DEPTH_LEVEL_COLORS,
  DOCUMENT_TYPE_LABELS,
  STORAGE_KEY as SCOPE_STORAGE_KEY,
  createEmptyScopeState,
} from './compliance-scope-types'
export { complianceScopeEngine } from './compliance-scope-engine'

// Demo Data Seeding (stored via API like real customer data)
export {
  generateDemoState,
  seedDemoData,
  seedDemoDataDirect,
  hasDemoData,
  clearDemoData,
  // Seed data templates (for testing/reference only)
  getDemoUseCases,
  getDemoRisks,
  getDemoControls,
  getDemoDSFA,
  getDemoTOMs,
  getDemoProcessingActivities,
  getDemoRetentionPolicies,
} from './demo-data'
