UNPKG

@elemental-design/expo-notifications

Version:
89 lines (80 loc) 2.17 kB
export enum AndroidNotificationVisibility { UNKNOWN = 0, PUBLIC = 1, PRIVATE = 2, SECRET = 3, } export enum AndroidAudioContentType { UNKNOWN = 0, SPEECH = 1, MUSIC = 2, MOVIE = 3, SONIFICATION = 4, } export enum AndroidImportance { UNKNOWN = 0, UNSPECIFIED = 1, NONE = 2, MIN = 3, LOW = 4, DEFAULT = 5, /** @deprecated use DEFAULT instead */ DEEFAULT = 5, HIGH = 6, MAX = 7, } export enum AndroidAudioUsage { UNKNOWN = 0, MEDIA = 1, VOICE_COMMUNICATION = 2, VOICE_COMMUNICATION_SIGNALLING = 3, ALARM = 4, NOTIFICATION = 5, NOTIFICATION_RINGTONE = 6, NOTIFICATION_COMMUNICATION_REQUEST = 7, NOTIFICATION_COMMUNICATION_INSTANT = 8, NOTIFICATION_COMMUNICATION_DELAYED = 9, NOTIFICATION_EVENT = 10, ASSISTANCE_ACCESSIBILITY = 11, ASSISTANCE_NAVIGATION_GUIDANCE = 12, ASSISTANCE_SONIFICATION = 13, GAME = 14, } export interface AudioAttributes { usage: AndroidAudioUsage; contentType: AndroidAudioContentType; flags: { enforceAudibility: boolean; requestHardwareAudioVideoSynchronization: boolean; }; } // We're making inner flags required to set intentionally. // Not providing `true` for a flag makes it false, it doesn't make sense // to let it be left undefined. export type AudioAttributesInput = Partial<AudioAttributes>; export interface NotificationChannel { id: string; name: string | null; importance: AndroidImportance; bypassDnd: boolean; description: string | null; groupId?: string | null; lightColor: string; lockscreenVisibility: AndroidNotificationVisibility; showBadge: boolean; sound: 'default' | 'custom' | null; audioAttributes: AudioAttributes; vibrationPattern: number[] | null; enableLights: boolean; enableVibrate: boolean; } type RequiredBy<T, K extends keyof T> = Partial<Omit<T, K>> & Required<Pick<T, K>>; export type NotificationChannelInput = RequiredBy< Omit< NotificationChannel, | 'id' // id is handled separately as a function argument | 'audioAttributes' // need to make it AudioAttributesInput | 'sound' > & { audioAttributes?: AudioAttributesInput; sound?: string | null }, 'name' | 'importance' >;