//
//  MVMCoreUISession.h
//  MVMCoreUI
//
//  Created by Scott Pfeil on 1/10/19.
//  Copyright © 2019 Verizon Wireless. All rights reserved.
//

@import UIKit.UIView;
@import MVMCore.MVMCoreSessionObject;
@class MVMCoreUITopAlertView;
@class MVMCoreUISplitViewController;
@class MFViewController;
@class MFLoadingViewController;
@class NavigationController;
NS_ASSUME_NONNULL_BEGIN

@interface MVMCoreUISession : MVMCoreSessionObject

@property (weak, nonatomic, nullable) MVMCoreUITopAlertView *topAlertView;
@property (weak, nonatomic, nullable) MVMCoreUISplitViewController *splitViewController;
@property (weak, nonatomic, nullable) NavigationController *navigationController;
@property (weak, nonatomic, nullable) MFLoadingViewController *loadingViewController;

/// Tracks the current page type the user is currently viewing. KVO compliant.
@property (nonatomic, strong, nullable) NSString *currentPageType;

// for handscroll Animation on subclasses of MFScrollingViewController
@property (assign, nonatomic) BOOL enableHandScrollAnimation;

//indicates if the app launched successfully
@property (assign, nonatomic) BOOL launchAppLoadedSuccessfully;

// Allows a global overload of the title view of navigation item.
- (nullable UIView *)titleViewForController:(nonnull MFViewController *)controller;

// Sets up the session as delegate for standard load view controller. Pass the view controller that will be used to present and will be disabled when load view is presented.
- (void)setupAsStandardLoadViewDelegate:(nonnull UIViewController *)mainViewController;

@end

NS_ASSUME_NONNULL_END
