chromium/ios/chrome/browser/shared/public/commands/parcel_tracking_opt_in_commands.h

// Copyright 2023 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_SHARED_PUBLIC_COMMANDS_PARCEL_TRACKING_OPT_IN_COMMANDS_H_
#define IOS_CHROME_BROWSER_SHARED_PUBLIC_COMMANDS_PARCEL_TRACKING_OPT_IN_COMMANDS_H_

#import "ios/chrome/browser/parcel_tracking/parcel_tracking_step.h"
#import "ios/web/public/annotations/custom_text_checking_result.h"

// Commands related to the parcel tracking opt-in prompt.
@protocol ParcelTrackingOptInCommands <NSObject>

// Shows the parcel tracking opt-in UI if the user is eligible for parcel list
// `parcels`.
- (void)showTrackingForParcels:(NSArray<CustomTextCheckingResult*>*)parcels;

// Shows the parcel tracking opt-in UI if the user is eligible for filtered
// parcel list `parcels`. Should only be called on a list of parcels that are
// not already being tracked by the ShoppingService. Otherwise, use command
// `showTrackingForParcels`.
- (void)showTrackingForFilteredParcels:
    (NSArray<CustomTextCheckingResult*>*)parcels;

// Shows the parcel tracking infobar.
- (void)showParcelTrackingInfobarWithParcels:
            (NSArray<CustomTextCheckingResult*>*)parcels
                                     forStep:(ParcelTrackingStep)step;

// Shows the Parcel Tracking IPH on the Magic Stack.
- (void)showParcelTrackingIPH;

@end

#endif  // IOS_CHROME_BROWSER_SHARED_PUBLIC_COMMANDS_PARCEL_TRACKING_OPT_IN_COMMANDS_H_