export interface IPushServiceSubscriptionKeys { pushToken ? : string ; publicKey ? : string ; authToken ? : string ; fcmToken ? : string ; fcmPushSet ? : string ; endpoint ? : string ; } export abstract class IPushService { return { NotificationPermission } public abstract getPermission ( ) ; return { boolean } public abstract checkIsPermissionGranted ( ) ; return { boolean } public abstract checkIsPermissionDefault ( ) ; /**
     * Check is manual unsubscribed for push notifications.
     */ public abstract async checkIsManualUnsubscribed ( ) ; return { Promise < void > } public abstract async askPermission ( ) ; return { Promise < IPushServiceSubscriptionKeys > } public abstract async getTokens ( ) ; return { Promise < void > } public abstract async subscribe ( ) ; return { Promise < void > } public abstract async unsubscribe ( ) ; return { Promise < boolean > } public abstract async checkIsRegister ( ) ; /**
     * Check is change sender configuration
     */ public abstract async checkIsNeedResubscribe ( ) ; }