@elemental-design/expo-notifications
Version:
64 lines (55 loc) • 1.63 kB
text/typescript
import { PermissionResponse } from 'unimodules-permissions-interface';
export enum IosAlertStyle {
NONE = 0,
BANNER = 1,
ALERT = 2,
}
export enum IosAllowsPreviews {
NEVER = 0,
ALWAYS = 1,
WHEN_AUTHENTICATED = 2,
}
export enum IosAuthorizationStatus {
NOT_DETERMINED = 0,
DENIED = 1,
AUTHORIZED = 2,
PROVISIONAL = 3,
}
export interface NotificationPermissionsStatus extends PermissionResponse {
android?: {
importance: number;
interruptionFilter?: number;
};
ios?: {
status: IosAuthorizationStatus;
allowsDisplayInNotificationCenter: boolean | null;
allowsDisplayOnLockScreen: boolean | null;
allowsDisplayInCarPlay: boolean | null;
allowsAlert: boolean | null;
allowsBadge: boolean | null;
allowsSound: boolean | null;
allowsCriticalAlerts?: boolean | null;
alertStyle: IosAlertStyle;
allowsPreviews?: IosAllowsPreviews;
providesAppNotificationSettings?: boolean;
allowsAnnouncements?: boolean | null;
};
}
export interface IosNotificationPermissionsRequest {
allowAlert?: boolean;
allowBadge?: boolean;
allowSound?: boolean;
allowDisplayInCarPlay?: boolean;
allowCriticalAlerts?: boolean;
provideAppNotificationSettings?: boolean;
allowProvisional?: boolean;
allowAnnouncements?: boolean;
}
export interface AndroidNotificationPermissionRequest {}
export type NativeNotificationPermissionsRequest =
| IosNotificationPermissionsRequest
| AndroidNotificationPermissionRequest;
export interface NotificationPermissionsRequest {
ios?: IosNotificationPermissionsRequest;
android?: AndroidNotificationPermissionRequest;
}