diff --git a/lib/private/files/node/root.php b/lib/private/files/node/root.php
index e47f98b0f27c9a6f34cb401f0ffa8084d74f2f2a..7ffb3674a8fc145d77f1e70d7aa6ad3c2f89ddf1 100644
--- a/lib/private/files/node/root.php
+++ b/lib/private/files/node/root.php
@@ -94,7 +94,7 @@ class Root extends Folder implements IRootFolder {
 	 * @param string $method
 	 * @param callable $callback
 	 */
-	public function listen($scope, $method, $callback) {
+	public function listen($scope, $method, callable $callback) {
 		$this->emitter->listen($scope, $method, $callback);
 	}
 
@@ -103,7 +103,7 @@ class Root extends Folder implements IRootFolder {
 	 * @param string $method optional
 	 * @param callable $callback optional
 	 */
-	public function removeListener($scope = null, $method = null, $callback = null) {
+	public function removeListener($scope = null, $method = null, callable $callback = null) {
 		$this->emitter->removeListener($scope, $method, $callback);
 	}
 
diff --git a/lib/private/hooks/emitter.php b/lib/private/hooks/emitter.php
index 895bd2d9cac6d9f5c74c6ec802a3a34a9e542d17..bea3f289b8df7cfd4520e39d83b1df7a3a251332 100644
--- a/lib/private/hooks/emitter.php
+++ b/lib/private/hooks/emitter.php
@@ -37,7 +37,7 @@ interface Emitter {
 	 * @param callable $callback
 	 * @return void
 	 */
-	public function listen($scope, $method, $callback);
+	public function listen($scope, $method, callable $callback);
 
 	/**
 	 * @param string $scope optional
@@ -45,5 +45,5 @@ interface Emitter {
 	 * @param callable $callback optional
 	 * @return void
 	 */
-	public function removeListener($scope = null, $method = null, $callback = null);
+	public function removeListener($scope = null, $method = null, callable $callback = null);
 }
diff --git a/lib/private/hooks/forwardingemitter.php b/lib/private/hooks/forwardingemitter.php
index 853004310fbf9fcf9e18e107f12ab2c235f3e735..90c1970f480101bfb574823f54545d506d8af687 100644
--- a/lib/private/hooks/forwardingemitter.php
+++ b/lib/private/hooks/forwardingemitter.php
@@ -40,7 +40,7 @@ abstract class ForwardingEmitter extends BasicEmitter {
 	 * @param string $method
 	 * @param callable $callback
 	 */
-	public function listen($scope, $method, $callback) {
+	public function listen($scope, $method, callable $callback) {
 		parent::listen($scope, $method, $callback);
 		foreach ($this->forwardEmitters as $emitter) {
 			$emitter->listen($scope, $method, $callback);
@@ -50,7 +50,7 @@ abstract class ForwardingEmitter extends BasicEmitter {
 	/**
 	 * @param \OC\Hooks\Emitter $emitter
 	 */
-	protected function forward($emitter) {
+	protected function forward(Emitter $emitter) {
 		$this->forwardEmitters[] = $emitter;
 
 		//forward all previously connected hooks
diff --git a/lib/private/hooks/legacyemitter.php b/lib/private/hooks/legacyemitter.php
index b0912d740d24f726ddcf906268c92fcc69ca2c27..b28854f4638f243dbc2c6b64d6f488cedc038556 100644
--- a/lib/private/hooks/legacyemitter.php
+++ b/lib/private/hooks/legacyemitter.php
@@ -23,7 +23,7 @@
 namespace OC\Hooks;
 
 abstract class LegacyEmitter extends BasicEmitter {
-	protected function emit($scope, $method, $arguments = array()) {
+	protected function emit($scope, $method, array $arguments = array()) {
 		\OC_Hook::emit($scope, $method, $arguments);
 		parent::emit($scope, $method, $arguments);
 	}
diff --git a/lib/private/hooks/publicemitter.php b/lib/private/hooks/publicemitter.php
index 71641c9d5e02e068a2e801a6a2c2ceb3876ce9ec..12de07b27c7b49e8e57952588d407f09f3e0e76a 100644
--- a/lib/private/hooks/publicemitter.php
+++ b/lib/private/hooks/publicemitter.php
@@ -28,7 +28,7 @@ class PublicEmitter extends BasicEmitter {
 	 * @param string $method
 	 * @param array $arguments optional
 	 */
-	public function emit($scope, $method, $arguments = array()) {
+	public function emit($scope, $method, array $arguments = array()) {
 		parent::emit($scope, $method, $arguments);
 	}
 }
diff --git a/lib/private/user/session.php b/lib/private/user/session.php
index a66ae6bd8ad6dfdb755621a02888810f35b79b9a..75a884fb4521d86eb2e8b3f7df9efa442991900f 100644
--- a/lib/private/user/session.php
+++ b/lib/private/user/session.php
@@ -81,7 +81,7 @@ class Session implements IUserSession, Emitter {
 	 * @param string $method
 	 * @param callable $callback
 	 */
-	public function listen($scope, $method, $callback) {
+	public function listen($scope, $method, callable $callback) {
 		$this->manager->listen($scope, $method, $callback);
 	}
 
@@ -90,7 +90,7 @@ class Session implements IUserSession, Emitter {
 	 * @param string $method optional
 	 * @param callable $callback optional
 	 */
-	public function removeListener($scope = null, $method = null, $callback = null) {
+	public function removeListener($scope = null, $method = null, callable $callback = null) {
 		$this->manager->removeListener($scope, $method, $callback);
 	}
 
diff --git a/tests/lib/hooks/forwardingemitter.php b/tests/lib/hooks/forwardingemitter.php
index decf6bb354cae24f0bf1afc7572cd5dee7e10bf7..5e8e252d3e3d6cd58532c832a4c5ecef0b8fe4d1 100644
--- a/tests/lib/hooks/forwardingemitter.php
+++ b/tests/lib/hooks/forwardingemitter.php
@@ -17,7 +17,7 @@ class DummyForwardingEmitter extends \OC\Hooks\ForwardingEmitter {
 	/**
 	 * @param \OC\Hooks\Emitter $emitter
 	 */
-	public function forward($emitter) {
+	public function forward(\OC\Hooks\Emitter $emitter) {
 		parent::forward($emitter);
 	}
 }