// // Created by AUTHOR. // Copyright © YEAR AUTHOR. All rights reserved. //

import Foundation import UIKit

protocol VIPERViewProtocol: class {

var presenter: VIPERPresenterProtocol? { get set }
/**
* Add here your methods for communication PRESENTER -> VIEW
*/

}

protocol VIPERWireFrameProtocol: class {

static func setupVIPERModule(object: AnyObject) -> UIViewController
/**
* Add here your methods for communication PRESENTER -> WIREFRAME
*/

}

protocol VIPERPresenterProtocol: class {

var view: VIPERViewProtocol? { get set }
var interactor: VIPERInteractorInputProtocol? { get set }
var wireFrame: VIPERWireFrameProtocol? { get set }
/**
* Add here your methods for communication VIEW -> PRESENTER
*/

}

protocol VIPERInteractorOutputProtocol: class {

/**
* Add here your methods for communication INTERACTOR -> PRESENTER
*/

}

protocol VIPERInteractorInputProtocol: class {

var presenter: VIPERInteractorOutputProtocol? { get set }
var APIDataManager: VIPERAPIDataManagerInputProtocol? { get set }
var localDataManager: VIPERLocalDataManagerInputProtocol? { get set }
/**
* Add here your methods for communication PRESENTER -> INTERACTOR
*/

}

protocol VIPERDataManagerInputProtocol: class {

/**
* Add here your methods for communication INTERACTOR -> DATAMANAGER
*/

}

protocol VIPERAPIDataManagerInputProtocol: class {

/**
* Add here your methods for communication INTERACTOR -> APIDATAMANAGER
*/

}

protocol VIPERLocalDataManagerInputProtocol: class {

/**
* Add here your methods for communication INTERACTOR -> LOCALDATAMANAGER
*/

}