/**
 * Types for @bytelyst/gentle-notifications.
 * Pure client-side TS — no backend dependency.
 */

export interface GentleNotificationConfig {
  maxPerHour: number;
  tone: 'encouraging' | 'neutral' | 'minimal';
  adaptiveFrequency: boolean;
  dismissCount: number;
  suppressThreshold: number;
}

export interface GentleMessage {
  title: string;
  body: string;
  tone: 'encouraging' | 'neutral' | 'minimal';
}

export interface GentleNotificationEngine {
  getDefaultConfig(): GentleNotificationConfig;
  getMessage(type: string, config?: GentleNotificationConfig): GentleMessage;
  shouldSuppress(config: GentleNotificationConfig): boolean;
  recordDismissal(config: GentleNotificationConfig): GentleNotificationConfig;
  resetDismissals(config: GentleNotificationConfig): GentleNotificationConfig;
  registerMessages(type: string, messages: GentleMessage[]): void;
  getForbiddenPhrases(): readonly string[];
  containsForbiddenPhrase(text: string): boolean;
}
