// 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>

namespace ios {
namespace provider {

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

// Returns a UIImageView to be used with CreateAnimatedImageFromData().
UIImageView* CreateAnimatedImageView();

// Returns UIImage based based on GIF data. This is to be used with
// GCRGetAnimatedImageView().
UIImage* CreateAnimatedImageFromData(NSData* data);

// 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_
