hunk.code_window:     [stores]="stores"
       [tabs]="tabs"
       [showUserPreferences]="showUserPreferences"
       [allowedNotificationActions]="allowedNotificationActions"
       [popover]="popover"
       [theme]="theme"
       [styles]="styles"
       [colorScheme]="colorScheme"
       [i18n]="i18n"
       [sessionLoaded]="sessionLoaded"
  
hunk.labels: keep keep keep keep replace keep keep keep keep keep
hunk.after_edit:     [popoverConfig]="popoverConfig"
  
hunk.file_path: packages/notification-center-angular/projects/notification-center-angular/src/lib/notification-center.component.ts
hunk.type: replace
file: import { IPushOptions, IPushProvider } from '@novu/stateless';
  import { ChannelTypeEnum, ICredentials } from '@novu/shared';
  import {} from '@novu/dal';
  import { IPushHandler } from '../interfaces';
  
  export abstract class BasePushHandler implements IPushHandler {
    protected provider: IPushProvider;
  
    protected constructor(
      private providerId: string,
      private channelType: string
    ) {}
  
    canHandle(providerId: string, channelType: ChannelTypeEnum) {
      return providerId === this.providerId && channelType === this.channelType;
    }
  
    async send(options: IPushOptions) {
      if (process.env.NODE_ENV === 'test') {
        throw new Error(
          'Currently 3rd-party packages test are not support on test env'
        );
      }
  
      return await this.provider.sendMessage(options);
    }
  
    abstract buildProvider(credentials: ICredentials);
  }
  