<?php
/**
 * Authentication provider interface
 *
 * @package Requests\Authentication
 */

namespace GcOrg\Requests;

use GcOrg\Requests\Hooks;

/**
 * Authentication provider interface
 *
 * Implement this interface to act as an authentication provider.
 *
 * Parameters should be passed via the constructor where possible, as this
 * makes it much easier for users to use your provider.
 *
 * @see \GcOrg\Requests\Hooks
 *
 * @package Requests\Authentication
 */
interface Auth {
	/**
	 * Register hooks as needed
	 *
	 * This method is called in {@see \GcOrg\Requests\Requests::request()} when the user
	 * has set an instance as the 'auth' option. Use this callback to register all the
	 * hooks you'll need.
	 *
	 * @see \GcOrg\Requests\Hooks::register()
	 * @param \GcOrg\Requests\Hooks $hooks Hook system
	 */
	public function register(Hooks $hooks);
}
