import type { TurboModule } from 'react-native/Libraries/TurboModule/RCTExport';
import { TurboModuleRegistry } from 'react-native';

export interface Spec extends TurboModule {
  initWENotificationInbox(): void;
  getNotificationList(offset: string | null, callback: (result: Object | null, error: Object | null) => void): void;
  getNotificationCount(callback: (result: string | null, error: Object | null) => void): void;
  markRead(notificationItem: Object): void;
  markUnread(notificationItem: Object): void;
  trackClick(notificationItem: Object): void;
  trackView(notificationItem: Object): void;
  markDelete(notificationItem: Object): void;
  readAll(notificationList: Object[]): void;
  unReadAll(notificationList: Object[]): void;
  deleteAll(notificationList: Object[]): void;
  onNotificationIconClick(): void;
}

export default TurboModuleRegistry.getEnforcing<Spec>('WEInboxReact');
