DefinitelyTyped/types/react-native-push-notification/index.d.ts
2019-01-10 11:29:17 +02:00

95 lines
2.9 KiB
TypeScript

// Type definitions for react-native-push-notification 3.0
// Project: https://github.com/zo0r/react-native-push-notification#readme
// Definitions by: Paito Anderson <https://github.com/PaitoAnderson>
// Tom Sawkins <https://github.com/tomSawkins>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
export interface PushNotificationPermissions {
alert?: boolean;
badge?: boolean;
sound?: boolean;
}
export interface PushNotification {
foreground: boolean;
userInteraction: boolean;
message: string | object;
data: object;
badge: number;
alert: object;
sound: string;
finish: (fetchResult: string) => void;
}
export interface PushNotificationOptions {
onRegister?: (token: { os: string; token: string }) => void;
onNotification?: (notification: PushNotification) => void;
senderID?: string;
permissions?: PushNotificationPermissions;
popInitialNotification?: boolean;
requestPermissions?: boolean;
}
export type PriorityType = 'max' | 'high' | 'low' | 'min' | 'default';
export type RepeatType = 'week' | 'day' | 'hour' | 'minute' | 'time';
export class PushNotificationObject {
/* Android only properties */
id?: string;
ticker?: string;
autoCancel?: boolean;
largeIcon?: string;
smallIcon?: string;
bigText?: string;
subText?: string;
color?: string;
vibrate?: boolean;
vibration?: number;
tag?: string;
group?: string;
ongoing?: boolean;
priority?: PriorityType;
/* iOS only properties */
alertAction?: any;
category?: any;
userInfo?: any;
/* iOS and Android properties */
title?: string;
message: string;
playSound?: boolean;
soundName?: string;
number?: string;
repeatType?: RepeatType;
actions?: string;
}
export class PushNotificationScheduleObject extends PushNotificationObject {
date: Date;
}
export interface PushNotification {
configure(options: PushNotificationOptions): void;
unregister(): void;
localNotification(details: PushNotificationObject): void;
localNotificationSchedule(details: PushNotificationScheduleObject): void;
requestPermissions(): void;
presentLocalNotification(details: PushNotificationObject): void;
scheduleLocalNotification(details: PushNotificationScheduleObject): void;
cancelLocalNotifications(details: object): void;
cancelAllLocalNotifications(): void;
setApplicationIconBadgeNumber(badgeCount: number): void;
getApplicationIconBadgeNumber(callback: (badgeCount: number) => void): void;
popInitialNotification(callback: (notification: PushNotification | null) => void): void;
abandonPermissions(): void;
checkPermissions(callback: (permissions: PushNotificationPermissions) => void): void;
registerNotificationActions(actions: string[]): void;
clearAllNotifications(): void;
}
declare const PushNotification: PushNotification;
export default PushNotification;