chromium/ios/chrome/browser/ui/promos_manager/standard_promo_action_handler.h

// Copyright 2022 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_UI_PROMOS_MANAGER_STANDARD_PROMO_ACTION_HANDLER_H_
#define IOS_CHROME_BROWSER_UI_PROMOS_MANAGER_STANDARD_PROMO_ACTION_HANDLER_H_

#import <Foundation/Foundation.h>

@protocol StandardPromoActionHandler <NSObject>

// The "Primary Action" was touched.
- (void)standardPromoPrimaryAction;

@optional

// - - - - - - - - - - - - - - - - - - - - - - - - - -
// Button-based actions. (Invoked via a button press.)
// - - - - - - - - - - - - - - - - - - - - - - - - - -

// The "Dismiss" button was touched.
- (void)standardPromoDismissAction;

// The "Secondary Action" was touched.
- (void)standardPromoSecondaryAction;

// The "Learn More" button was touched.
- (void)standardPromoLearnMoreAction;

// The "Tertiary Action" was touched.
- (void)standardPromoTertiaryAction;

// - - - - - - - - - - - - - - - - - - - - - - - -
// Gesture-based actions. (Invoked via a gesture.)
// - - - - - - - - - - - - - - - - - - - - - - - -

// Important: If `standardPromoDismissSwipe` is not implemented, but
// `standardPromoDismissAction` is, `standardPromoDismissAction` will be called
// for both `standardPromoDismissAction` and `standardPromoDismissSwipe`.
// However, if both `standardPromoDismissAction` and `standardPromoDismissSwipe`
// are implemented, they will be called separately at their respective points of
// invocation.
- (void)standardPromoDismissSwipe;

@end

#endif  // IOS_CHROME_BROWSER_UI_PROMOS_MANAGER_STANDARD_PROMO_ACTION_HANDLER_H_