1import { ProxyNativeModule } from 'expo-modules-core';
2
3import { NotificationChannel } from './NotificationChannelManager.types';
4
5/**
6 * An object represents a notification channel group.
7 * @platform android
8 */
9export interface NotificationChannelGroup {
10  id: string;
11  name: string | null;
12  description?: string | null;
13  isBlocked?: boolean;
14  channels: NotificationChannel[];
15}
16
17/**
18 * An object represents a notification channel group to be set.
19 * @platform android
20 */
21export interface NotificationChannelGroupInput {
22  name: string | null;
23  description?: string | null;
24}
25
26export interface NotificationChannelGroupManager extends ProxyNativeModule {
27  getNotificationChannelGroupsAsync?: () => Promise<NotificationChannelGroup[]>;
28  getNotificationChannelGroupAsync?: (groupId: string) => Promise<NotificationChannelGroup | null>;
29  setNotificationChannelGroupAsync?: (
30    groupId: string,
31    group: NotificationChannelGroupInput
32  ) => Promise<NotificationChannelGroup | null>;
33  deleteNotificationChannelGroupAsync?: (groupId: string) => Promise<void>;
34}
35