// Copyright 2024 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_DOCKING_PROMO_MODEL_UTILS_H_
#define IOS_CHROME_BROWSER_DOCKING_PROMO_MODEL_UTILS_H_
#import <UIKit/UIKit.h>
#import <optional>
#import "base/time/time.h"
@class SceneState;
// For testing only.
// Returns YES if the Docking Promo is forced for display via Chrome
// Experimental Settings.
BOOL IsDockingPromoForcedForDisplay();
// Returns whether the user eligibility criteria to show the Docking Promo have
// been met, namely:
//
// 1. Chrome is likely not the default browser,
//
// AND
//
// 2. For users no older than 2 days, whether they're active on their first day,
// but not their second day, (and/or) for users no older than 14 days, whether
// they've been inactive for 3 consecutive (or more) days.
BOOL CanShowDockingPromo(base::TimeDelta time_since_last_foreground);
// Returns the minimum time since the last app foregrounding using
// `foregroundScenes`.
std::optional<base::TimeDelta> MinTimeSinceLastForeground(
NSArray<SceneState*>* foregroundScenes);
#endif // IOS_CHROME_BROWSER_DOCKING_PROMO_MODEL_UTILS_H_