chromium/ios/chrome/browser/ui/browser_container/browser_container_mediator.h

// Copyright 2020 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_BROWSER_CONTAINER_BROWSER_CONTAINER_MEDIATOR_H_
#define IOS_CHROME_BROWSER_UI_BROWSER_CONTAINER_BROWSER_CONTAINER_MEDIATOR_H_

#import <Foundation/Foundation.h>

class OverlayPresenter;
class WebStateList;
@protocol BrowserContainerConsumer;

// Mediator that updates a BrowserContainerConsumer
@interface BrowserContainerMediator : NSObject

// Initializer for a mediator.  `webStateList` is the WebStateList for the
// Browser whose content is shown within the BrowserContainerConsumer.
// `overlayPresenter` is the OverlayModality::kWebContentArea OverlayPresenter.
// Both `webSateList` and `overlaPresenter` must be non-null.
- (instancetype)initWithWebStateList:(WebStateList*)webStateList
      webContentAreaOverlayPresenter:(OverlayPresenter*)overlayPresenter
    NS_DESIGNATED_INITIALIZER;
- (instancetype)init NS_UNAVAILABLE;

// The consumer.  Setting to a new value configures the new consumer.
@property(nonatomic, strong) id<BrowserContainerConsumer> consumer;

@end

#endif  // IOS_CHROME_BROWSER_UI_BROWSER_CONTAINER_BROWSER_CONTAINER_MEDIATOR_H_