// Copyright (c) Microsoft Corporation. 
// Licensed under the MIT license.

#pragma once
#include "Modules/ModuleInterface.h"
#include "Modules/ModuleManager.h"
#include "ISimplygonPluginUtilities.h"
/**
 * The public interface to Simplygon plugin utilities module.  In most cases, this interface is only public to sibling modules 
 * within this plugin.
 */
class ISimplygonPluginUtilitiesModule : public IModuleInterface
{
	
public:
	/**
	 * @brief  Get a const referce to Simplygon Utilities
	 * @return Reference to ISimplygonPlugin Utilities
	*/
	virtual const ISimplygonPluginUtilities& GetUtilities() const = 0;

	/**
	 * @brief Get a reference to Simplygon Utilities
	 * @return Reference to ISimplygonPlugin Utilities
	*/
	virtual ISimplygonPluginUtilities& GetUtilities() = 0;

	/**
	 * @brief Startup Module
	*/
	virtual void StartupModule() = 0;

	/**
	 * @brief Shutdown Module
	*/
	virtual void ShutdownModule() = 0;
};

