chromium/ios/chrome/browser/badges/ui_bundled/badge_delegate.h

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_CHROME_BROWSER_BADGES_UI_BUNDLED_BADGE_DELEGATE_H_
#define IOS_CHROME_BROWSER_BADGES_UI_BUNDLED_BADGE_DELEGATE_H_

#include "ios/chrome/browser/badges/ui_bundled/badge_type.h"

// Protocol to communicate Badge actions to the mediator.
@protocol BadgeDelegate

// Badge types for menu items that should be displayed in the overflow menu.
@property(nonatomic, strong, readonly)
    NSArray<NSNumber*>* badgeTypesForOverflowMenu;

// Action when a Passwords badge is tapped.
- (void)passwordsBadgeButtonTapped:(id)sender;

// Action when a Save Address Profile badge is tapped.
- (void)saveAddressProfileBadgeButtonTapped:(id)sender;

// Action when a Save Card badge is tapped.
- (void)saveCardBadgeButtonTapped:(id)sender;

// Action when a Translate badge is tapped.
- (void)translateBadgeButtonTapped:(id)sender;

// Action when the Permissions badge is tapped.
- (void)permissionsBadgeButtonTapped:(id)sender;

// Action when the overflow badge is tapped.
- (void)overflowBadgeButtonTapped:(id)sender;

// Action when the parcel tracking badge is tapped.
- (void)parcelTrackingBadgeButtonTapped:(id)sender;

// Show the infobar modal for the respective `badgeType` when the new overflow
// menu is tapped.
- (void)showModalForBadgeType:(BadgeType)badgeType;

@end

#endif  // IOS_CHROME_BROWSER_BADGES_UI_BUNDLED_BADGE_DELEGATE_H_