* //Setting views directory
	 * $view = new Phalcon\Mvc\View();
	 * $view->setViewsDir('app/views/');
	 *
	 * $view->start();
	 * //Shows recent posts view (app/views/posts/recent.phtml)
	 * $view->render('posts', 'recent');
	 * $view->finish();
	 *
	 * //Printing views output
	 * echo $view->getContent();
	 * 
	 */
	
	class View extends \Phalcon\DI\Injectable implements \Phalcon\Events\EventsAwareInterface, \Phalcon\DI\InjectionAwareInterface, \Phalcon\Mvc\ViewInterface {
		const LEVEL_MAIN_LAYOUT = 5;
		const LEVEL_AFTER_TEMPLATE = 4;
		const LEVEL_LAYOUT = 3;
		const LEVEL_BEFORE_TEMPLATE = 2;
		const LEVEL_ACTION_VIEW = 1;
		const LEVEL_NO_RENDER = 0;
		protected $_options;
		protected $_basePath;
		protected $_content;
		protected $_renderLevel;
		protected $_disabledLevels;
		protected $_viewParams;
		protected $_layout;
		protected $_layoutsDir;
		protected $_partialsDir;
		protected $_viewsDir;
		protected $_templatesBefore;
		protected $_templatesAfter;
		protected $_engines;
		protected $_registeredEngines;
		protected $_mainView;
		protected $_controllerName;
		protected $_actionName;
		protected $_params;
		protected $_pickView;
		protected $_cache;
		protected $_cacheLevel;
		protected $_activeRenderPath;
		protected $_disabled;
		/**
		 * \Phalcon\Mvc\View constructor
		 *
		 * @param array $options
		 */
		public function __construct($options=null){ }
		/**
		 * Sets views directory. Depending of your platform, always add a trailing slash or backslash
		 *
		 * @param string $viewsDir
		 * @return \Phalcon\Mvc\View
		 */
		public function setViewsDir($viewsDir){ }
		/**
		 * Gets views directory
		 *
		 * @return string
		 */
		public function getViewsDir(){ }
		/**
		 * Sets the layouts sub-directory. Must be a directory under the views directory. Depending of your platform, always add a trailing slash or backslash
		 *
		 *
		 * $view->setLayoutsDir('../common/layouts/');
		 *
		 *
		 * @param string $layoutsDir
		 * @return \Phalcon\Mvc\View
		 */
		public function setLayoutsDir($layoutsDir){ }
		/**
		 * Gets the current layouts sub-directory
		 *
		 * @return string
		 */
		public function getLayoutsDir(){ }
		/**
		 * Sets a partials sub-directory. Must be a directory under the views directory. Depending of your platform, always add a trailing slash or backslash
		 *
		 *
		 * $view->setPartialsDir('../common/partials/');
		 *
		 *
		 * @param string $partialsDir
		 * @return \Phalcon\Mvc\View
		 */
		public function setPartialsDir($partialsDir){ }
		/**
		 * Gets the current partials sub-directory
		 *
		 * @return string
		 */
		public function getPartialsDir(){ }
		/**
		 * Sets base path. Depending of your platform, always add a trailing slash or backslash
		 *
		 * 
		 * 	$view->setBasePath(__DIR__ . '/');
		 * 
		 *
		 * @param string $basePath
		 * @return \Phalcon\Mvc\View
		 */
		public function setBasePath($basePath){ }
		/**
		 * Sets the render level for the view
		 *
		 * 
		 * 	//Render the view related to the controller only
		 * 	$this->view->setRenderLevel(View::LEVEL_LAYOUT);
		 * 
		 *
		 * @param string $level
		 * @return \Phalcon\Mvc\View
		 */
		public function setRenderLevel($level){ }
		/**
		 * Disables a specific level of rendering
		 *
		 *
		 * //Render all levels except ACTION level
		 * $this->view->disableLevel(View::LEVEL_ACTION_VIEW);
		 *
		 *
		 * @param int|array $level
		 * @return \Phalcon\Mvc\View
		 */
		public function disableLevel($level){ }
		/**
		 * Sets default view name. Must be a file without extension in the views directory
		 *
		 * 
		 * 	//Renders as main view views-dir/base.phtml
		 * 	$this->view->setMainView('base');
		 * 
		 *
		 * @param string $viewPath
		 * @return \Phalcon\Mvc\View
		 */
		public function setMainView($viewPath){ }
		/**
		 * Returns the name of the main view
		 *
		 * @return string
		 */
		public function getMainView(){ }
		/**
		 * Change the layout to be used instead of using the name of the latest controller name
		 *
		 * 
		 * 	$this->view->setLayout('main');
		 * 
		 *
		 * @param string $layout
		 * @return \Phalcon\Mvc\View
		 */
		public function setLayout($layout){ }
		/**
		 * Returns the name of the main view
		 *
		 * @return string
		 */
		public function getLayout(){ }
		/**
		 * Appends template before controller layout
		 *
		 * @param string|array $templateBefore
		 * @return \Phalcon\Mvc\View
		 */
		public function setTemplateBefore($templateBefore){ }
		/**
		 * Resets any template before layouts
		 *
		 * @return \Phalcon\Mvc\View
		 */
		public function cleanTemplateBefore(){ }
		/**
		 * Appends template after controller layout
		 *
		 * @param string|array $templateAfter
		 * @return \Phalcon\Mvc\View
		 */
		public function setTemplateAfter($templateAfter){ }
		/**
		 * Resets any template before layouts
		 *
		 * @return \Phalcon\Mvc\View
		 */
		public function cleanTemplateAfter(){ }
		/**
		 * Adds parameters to views (alias of setVar)
		 *
		 *
		 *	$this->view->setParamToView('products', $products);
		 *
		 *
		 * @param string $key
		 * @param mixed $value
		 * @return \Phalcon\Mvc\View
		 */
		public function setParamToView($key, $value){ }
		/**
		 * Set all the render params
		 *
		 *
		 *	$this->view->setVars(array('products' => $products));
		 *
		 *
		 * @param array $params
		 * @param boolean $merge
		 * @return \Phalcon\Mvc\View
		 */
		public function setVars($params, $merge=null){ }
		/**
		 * Set a single view parameter
		 *
		 *
		 *	$this->view->setVar('products', $products);
		 *
		 *
		 * @param string $key
		 * @param mixed $value
		 * @return \Phalcon\Mvc\View
		 */
		public function setVar($key, $value){ }
		/**
		 * Returns a parameter previously set in the view
		 *
		 * @param string $key
		 * @return mixed
		 */
		public function getVar($key){ }
		/**
		 * Returns parameters to views
		 *
		 * @return array
		 */
		public function getParamsToView(){ }
		/**
		 * Gets the name of the controller rendered
		 *
		 * @return string
		 */
		public function getControllerName(){ }
		/**
		 * Gets the name of the action rendered
		 *
		 * @return string
		 */
		public function getActionName(){ }
		/**
		 * Gets extra parameters of the action rendered
		 *
		 * @return array
		 */
		public function getParams(){ }
		/**
		 * Starts rendering process enabling the output buffering
		 *
		 * @return \Phalcon\Mvc\View
		 */
		public function start(){ }
		/**
		 * Loads registered template engines, if none is registered it will use \Phalcon\Mvc\View\Engine\Php
		 *
		 * @return array
		 */
		protected function _loadTemplateEngines(){ }
		/**
		 * Checks whether view exists on registered extensions and render it
		 *
		 * @param array $engines
		 * @param string $viewPath
		 * @param boolean $silence
		 * @param boolean $mustClean
		 * @param \Phalcon\Cache\BackendInterface $cache
		 */
		protected function _engineRender(){ }
		/**
		 * Register templating engines
		 *
		 *
		 *$this->view->registerEngines(array(
		 *  ".phtml" => "Phalcon\Mvc\View\Engine\Php",
		 *  ".volt" => "Phalcon\Mvc\View\Engine\Volt",
		 *  ".mhtml" => "MyCustomEngine"
		 *));
		 *
		 *
		 * @param array $engines
		 * @return \Phalcon\Mvc\View
		 */
		public function registerEngines($engines){ }
		/**
		 * Executes render process from dispatching data
		 *
		 *
		 * //Shows recent posts view (app/views/posts/recent.phtml)
		 * $view->start()->render('posts', 'recent')->finish();
		 *
		 *
		 * @param string $controllerName
		 * @param string $actionName
		 * @param array $params
		 * @return \Phalcon\Mvc\View
		 */
		public function render($controllerName, $actionName, $params=null){ }
		/**
		 * Choose a different view to render instead of last-controller/last-action
		 *
		 * 
		 * class ProductsController extends \Phalcon\Mvc\Controller
		 * {
		 *
		 *    public function saveAction()
		 *    {
		 *
		 *         //Do some save stuff...
		 *
		 *         //Then show the list view
		 *         $this->view->pick("products/list");
		 *    }
		 * }
		 * 
		 *
		 * @param string|array $renderView
		 * @return \Phalcon\Mvc\View
		 */
		public function pick($renderView){ }
		/**
		 * Renders a partial view
		 *
		 * 
		 * 	//Show a partial inside another view
		 * 	$this->partial('shared/footer');
		 * 
		 *
		 * 
		 * 	//Show a partial inside another view with parameters
		 * 	$this->partial('shared/footer', array('content' => $html));
		 * 
		 *
		 * @param string $partialPath
		 * @param array $params
		 */
		public function partial($partialPath, $params=null){ }
		/**
		 * Perform the automatic rendering returning the output as a string
		 *
		 * 
		 * 	$template = $this->view->getRender('products', 'show', array('products' => $products));
		 * 
		 *
		 * @param string $controllerName
		 * @param string $actionName
		 * @param array $params
		 * @param mixed $configCallback
		 * @return string
		 */
		public function getRender($controllerName, $actionName, $params=null, $configCallback=null){ }
		/**
		 * Finishes the render process by stopping the output buffering
		 *
		 * @return \Phalcon\Mvc\View
		 */
		public function finish(){ }
		/**
		 * Create a \Phalcon\Cache based on the internal cache options
		 *
		 * @return \Phalcon\Cache\BackendInterface
		 */
		protected function _createCache(){ }
		/**
		 * Check if the component is currently caching the output content
		 *
		 * @return boolean
		 */
		public function isCaching(){ }
		/**
		 * Returns the cache instance used to cache
		 *
		 * @return \Phalcon\Cache\BackendInterface
		 */
		public function getCache(){ }
		/**
		 * Cache the actual view render to certain level
		 *
		 *
		 *  $this->view->cache(array('key' => 'my-key', 'lifetime' => 86400));
		 *
		 *
		 * @param boolean|array $options
		 * @return \Phalcon\Mvc\View
		 */
		public function cache($options=null){ }
		/**
		 * Externally sets the view content
		 *
		 *
		 *	$this->view->setContent("hello
");
		 *
		 *
		 * @param string $content
		 * @return \Phalcon\Mvc\View
		 */
		public function setContent($content){ }
		/**
		 * Returns cached output from another view stage
		 *
		 * @return string
		 */
		public function getContent(){ }
		/**
		 * Returns the path of the view that is currently rendered
		 *
		 * @return string
		 */
		public function getActiveRenderPath(){ }
		/**
		 * Disables the auto-rendering process
		 *
		 * @return \Phalcon\Mvc\View
		 */
		public function disable(){ }
		/**
		 * Enables the auto-rendering process
		 *
		 * @return \Phalcon\Mvc\View
		 */
		public function enable(){ }
		/**
		 * Resets the view component to its factory default values
		 *
		 * @return \Phalcon\Mvc\View
		 */
		public function reset(){ }
		/**
		 * Magic method to pass variables to the views
		 *
		 *
		 *	$this->view->products = $products;
		 *
		 *
		 * @param string $key
		 * @param mixed $value
		 */
		public function __set($key, $value){ }
		/**
		 * Magic method to retrieve a variable passed to the view
		 *
		 *
		 *	echo $this->view->products;
		 *
		 *
		 * @param string $key
		 * @return mixed
		 */
		public function __get($key){ }
	}
}