export {
  matchRecords,
  getConfigForPropertyType,
  parseName,
  normalizeString,
  normalizeStreetType,
  levenshteinDistance,
  similarityScore,
} from './matcher.service';

export {
  detectChanges,
  shouldTriggerAlert,
  classifyFieldChange,
  determineSeverity,
  computeChangeConfidence,
} from './change-detector';

export type {
  PropertyRecord,
  Address,
  PropertyType,
  PropertySnapshot,
  MatchResult,
  MatchDetails,
  FieldMatch,
  ChangeDetectionResult,
  ChangeType,
  Severity,
  PropertyChange,
  MatchingConfig,
  DetectionConfig,
  NormalizedTokens,
  AlertSeverityLevel,
  PropertyAlert,
  NotificationChannel,
  AlertPipelineConfig,
  SchedulerConfig,
  ScheduledScanResult,
} from './types';

export { HomeTitleAlertPipeline, homeTitleAlertPipeline } from './alert.pipeline';
export { HomeTitleSchedulerService, homeTitleScheduler } from './scheduler.service';
export {
  PropertyWatchlistService,
  propertyWatchlistService,
  normalizeAddressValue,
  hashAddressValue,
} from './watchlist.service';
export {
  PropertyScannerService,
  propertyScannerService,
} from './scanner.service';
export type {
  CountyDeedRecord,
  DataSourceType,
} from './types';
