/** * Notification Preferences Repository * * Data access layer for user notification preferences. * Used by DatabasePreferenceChecker to implement PreferenceChecker interface. */ import { BaseRepository } from '@plyaz/db'; import type { DatabaseResult, DatabaseServiceInterface, OperationConfig } from '@plyaz/types/db'; export interface NotificationPreferencesDatabaseRow extends Record { id: string; user_id: string; email_enabled: boolean; sms_enabled: boolean; push_enabled: boolean; transactional_enabled: boolean; marketing_enabled: boolean; social_enabled: boolean; system_enabled: boolean; promotional_enabled: boolean; quiet_hours_enabled: boolean; quiet_hours_start: string | null; quiet_hours_end: string | null; quiet_hours_timezone: string; created_at: string; updated_at: string; } export declare class NotificationPreferencesRepository extends BaseRepository { constructor(db: DatabaseServiceInterface); static create(): NotificationPreferencesRepository; /** * Find preferences by user ID */ findByUserId(userId: string): Promise>; /** * Create default preferences for a user */ createDefault(userId: string, config?: OperationConfig): Promise>; /** * Get or create preferences for a user */ getOrCreate(userId: string): Promise; /** * Update preferences for a user */ updateByUserId(userId: string, data: Partial): Promise>; } //# sourceMappingURL=NotificationPreferencesRepository.d.ts.map