chromium/ios/public/provider/chrome/browser/ui_utils/ui_utils_api.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_PUBLIC_PROVIDER_CHROME_BROWSER_UI_UTILS_UI_UTILS_API_H_
#define IOS_PUBLIC_PROVIDER_CHROME_BROWSER_UI_UTILS_UI_UTILS_API_H_

#import <UIKit/UIKit.h>

class Browser;
@protocol LogoVendor;

namespace web {
class WebState;
}

namespace ios {
namespace provider {

// Initializes UI global state for the provider.
void InitializeUI();

// Creates a new LogoVendor instance.
id<LogoVendor> CreateLogoVendor(Browser* browser, web::WebState* web_state);

// Hides immediately the modals related to this provider.
void HideModalViewStack();

// Logs if any modals created by this provider are still presented. It does
// not dismiss them.
void LogIfModalViewsArePresented();

}  // namespace provider
}  // namespace ios

#endif  // IOS_PUBLIC_PROVIDER_CHROME_BROWSER_UI_UTILS_UI_UTILS_API_H_