diff --git a/lib/private/DB/QueryBuilder/FunctionBuilder/FunctionBuilder.php b/lib/private/DB/QueryBuilder/FunctionBuilder/FunctionBuilder.php
index 23a834a9c490b890b8f2c9aa33dc96d21a79ced3..b8c54546b78902fbb0651c868a495a60f00ad708 100644
--- a/lib/private/DB/QueryBuilder/FunctionBuilder/FunctionBuilder.php
+++ b/lib/private/DB/QueryBuilder/FunctionBuilder/FunctionBuilder.php
@@ -27,8 +27,6 @@ namespace OC\DB\QueryBuilder\FunctionBuilder;
 use OC\DB\QueryBuilder\QueryFunction;
 use OC\DB\QueryBuilder\QuoteHelper;
 use OCP\DB\QueryBuilder\IFunctionBuilder;
-use OCP\DB\QueryBuilder\ILiteral;
-use OCP\DB\QueryBuilder\IParameter;
 use OCP\DB\QueryBuilder\IQueryFunction;
 
 class FunctionBuilder implements IFunctionBuilder {
@@ -44,15 +42,15 @@ class FunctionBuilder implements IFunctionBuilder {
 		$this->helper = $helper;
 	}
 
-	public function md5($input) {
+	public function md5($input): IQueryFunction {
 		return new QueryFunction('MD5(' . $this->helper->quoteColumnName($input) . ')');
 	}
 
-	public function concat($x, $y) {
+	public function concat($x, $y): IQueryFunction {
 		return new QueryFunction('CONCAT(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')');
 	}
 
-	public function substring($input, $start, $length = null) {
+	public function substring($input, $start, $length = null): IQueryFunction {
 		if ($length) {
 			return new QueryFunction('SUBSTR(' . $this->helper->quoteColumnName($input) . ', ' . $this->helper->quoteColumnName($start) . ', ' . $this->helper->quoteColumnName($length) . ')');
 		} else {
@@ -60,51 +58,41 @@ class FunctionBuilder implements IFunctionBuilder {
 		}
 	}
 
-	public function sum($field) {
+	public function sum($field): IQueryFunction {
 		return new QueryFunction('SUM(' . $this->helper->quoteColumnName($field) . ')');
 	}
 
-	public function lower($field) {
+	public function lower($field): IQueryFunction {
 		return new QueryFunction('LOWER(' . $this->helper->quoteColumnName($field) . ')');
 	}
 
-	public function add($x, $y) {
+	public function add($x, $y): IQueryFunction {
 		return new QueryFunction($this->helper->quoteColumnName($x) . ' + ' . $this->helper->quoteColumnName($y));
 	}
 
-	public function subtract($x, $y) {
+	public function subtract($x, $y): IQueryFunction {
 		return new QueryFunction($this->helper->quoteColumnName($x) . ' - ' . $this->helper->quoteColumnName($y));
 	}
 
-	public function count($count = '', $alias = '') {
+	public function count($count = '', $alias = ''): IQueryFunction {
 		$alias = $alias ? (' AS ' . $this->helper->quoteColumnName($alias)) : '';
 		$quotedName = $count === '' ? '*' : $this->helper->quoteColumnName($count);
 		return new QueryFunction('COUNT(' . $quotedName . ')' . $alias);
 	}
 
-	public function max($field) {
+	public function max($field): IQueryFunction {
 		return new QueryFunction('MAX(' . $this->helper->quoteColumnName($field) . ')');
 	}
 
-	public function min($field) {
+	public function min($field): IQueryFunction {
 		return new QueryFunction('MIN(' . $this->helper->quoteColumnName($field) . ')');
 	}
 
-	/**
-	 * @param string|ILiteral|IParameter|IQueryFunction $x
-	 * @param string|ILiteral|IParameter|IQueryFunction $y
-	 * @return IQueryFunction
-	 */
-	public function greatest($x, $y) {
+	public function greatest($x, $y): IQueryFunction {
 		return new QueryFunction('GREATEST(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')');
 	}
 
-	/**
-	 * @param string|ILiteral|IParameter|IQueryFunction $x
-	 * @param string|ILiteral|IParameter|IQueryFunction $y
-	 * @return IQueryFunction
-	 */
-	public function least($x, $y) {
+	public function least($x, $y): IQueryFunction {
 		return new QueryFunction('LEAST(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')');
 	}
 }
diff --git a/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php b/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php
index aec925745812498eaea8e06b3f424db695e81730..4ad726bc03450e15a305dacb5c870e1cba47a1b4 100644
--- a/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php
+++ b/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php
@@ -29,7 +29,7 @@ use OCP\DB\QueryBuilder\IParameter;
 use OCP\DB\QueryBuilder\IQueryFunction;
 
 class OCIFunctionBuilder extends FunctionBuilder {
-	public function md5($input) {
+	public function md5($input): IQueryFunction {
 		return new QueryFunction('LOWER(DBMS_OBFUSCATION_TOOLKIT.md5 (input => UTL_RAW.cast_to_raw(' . $this->helper->quoteColumnName($input) .')))');
 	}
 
@@ -45,7 +45,7 @@ class OCIFunctionBuilder extends FunctionBuilder {
 	 * @param string|ILiteral|IParameter|IQueryFunction $y
 	 * @return IQueryFunction
 	 */
-	public function greatest($x, $y) {
+	public function greatest($x, $y): IQueryFunction {
 		if (is_string($y) || $y instanceof IQueryFunction) {
 			return parent::greatest($y, $x);
 		}
@@ -65,7 +65,7 @@ class OCIFunctionBuilder extends FunctionBuilder {
 	 * @param string|ILiteral|IParameter|IQueryFunction $y
 	 * @return IQueryFunction
 	 */
-	public function least($x, $y) {
+	public function least($x, $y): IQueryFunction {
 		if (is_string($y) || $y instanceof IQueryFunction) {
 			return parent::least($y, $x);
 		}
diff --git a/lib/private/DB/QueryBuilder/FunctionBuilder/PgSqlFunctionBuilder.php b/lib/private/DB/QueryBuilder/FunctionBuilder/PgSqlFunctionBuilder.php
index 8753d26104f2254bbfd275d29e5ddb1c8ec700ba..a44b80bbaafc0e2a958c3ca6a397db068ea8df8e 100644
--- a/lib/private/DB/QueryBuilder/FunctionBuilder/PgSqlFunctionBuilder.php
+++ b/lib/private/DB/QueryBuilder/FunctionBuilder/PgSqlFunctionBuilder.php
@@ -25,9 +25,10 @@
 namespace OC\DB\QueryBuilder\FunctionBuilder;
 
 use OC\DB\QueryBuilder\QueryFunction;
+use OCP\DB\QueryBuilder\IQueryFunction;
 
 class PgSqlFunctionBuilder extends FunctionBuilder {
-	public function concat($x, $y) {
+	public function concat($x, $y): IQueryFunction {
 		return new QueryFunction('(' . $this->helper->quoteColumnName($x) . ' || ' . $this->helper->quoteColumnName($y) . ')');
 	}
 }
diff --git a/lib/private/DB/QueryBuilder/FunctionBuilder/SqliteFunctionBuilder.php b/lib/private/DB/QueryBuilder/FunctionBuilder/SqliteFunctionBuilder.php
index f759fb22fde1b3ff7a2123db07429940a23091fc..8e490c15a3c6323e2777642e6413ae7b2d5eaf10 100644
--- a/lib/private/DB/QueryBuilder/FunctionBuilder/SqliteFunctionBuilder.php
+++ b/lib/private/DB/QueryBuilder/FunctionBuilder/SqliteFunctionBuilder.php
@@ -25,30 +25,18 @@
 namespace OC\DB\QueryBuilder\FunctionBuilder;
 
 use OC\DB\QueryBuilder\QueryFunction;
-use OCP\DB\QueryBuilder\ILiteral;
-use OCP\DB\QueryBuilder\IParameter;
 use OCP\DB\QueryBuilder\IQueryFunction;
 
 class SqliteFunctionBuilder extends FunctionBuilder {
-	public function concat($x, $y) {
+	public function concat($x, $y): IQueryFunction {
 		return new QueryFunction('(' . $this->helper->quoteColumnName($x) . ' || ' . $this->helper->quoteColumnName($y) . ')');
 	}
 
-	/**
-	 * @param string|ILiteral|IParameter|IQueryFunction $x
-	 * @param string|ILiteral|IParameter|IQueryFunction $y
-	 * @return IQueryFunction
-	 */
-	public function greatest($x, $y) {
+	public function greatest($x, $y): IQueryFunction {
 		return new QueryFunction('MAX(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')');
 	}
 
-	/**
-	 * @param string|ILiteral|IParameter|IQueryFunction $x
-	 * @param string|ILiteral|IParameter|IQueryFunction $y
-	 * @return IQueryFunction
-	 */
-	public function least($x, $y) {
+	public function least($x, $y): IQueryFunction {
 		return new QueryFunction('MIN(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')');
 	}
 }
diff --git a/lib/public/DB/QueryBuilder/IFunctionBuilder.php b/lib/public/DB/QueryBuilder/IFunctionBuilder.php
index aa11e42d6220c8146e8efd146eef6a9166dc0d79..569bc7485d4aedc1385349c0fd02fccf9a70b6d7 100644
--- a/lib/public/DB/QueryBuilder/IFunctionBuilder.php
+++ b/lib/public/DB/QueryBuilder/IFunctionBuilder.php
@@ -34,103 +34,103 @@ interface IFunctionBuilder {
 	/**
 	 * Calculates the MD5 hash of a given input
 	 *
-	 * @param mixed $input The input to be hashed
+	 * @param string|ILiteral|IParameter|IQueryFunction $input The input to be hashed
 	 *
 	 * @return IQueryFunction
 	 * @since 12.0.0
 	 */
-	public function md5($input);
+	public function md5($input): IQueryFunction;
 
 	/**
 	 * Combines two input strings
 	 *
-	 * @param mixed $x The first input string
-	 * @param mixed $y The seccond input string
+	 * @param string|ILiteral|IParameter|IQueryFunction $x The first input string
+	 * @param string|ILiteral|IParameter|IQueryFunction $y The seccond input string
 	 *
 	 * @return IQueryFunction
 	 * @since 12.0.0
 	 */
-	public function concat($x, $y);
+	public function concat($x, $y): IQueryFunction;
 
 	/**
 	 * Takes a substring from the input string
 	 *
-	 * @param mixed $input The input string
-	 * @param mixed $start The start of the substring, note that counting starts at 1
-	 * @param mixed $length The length of the substring
+	 * @param string|ILiteral|IParameter|IQueryFunction $input The input string
+	 * @param string|ILiteral|IParameter|IQueryFunction $start The start of the substring, note that counting starts at 1
+	 * @param null|ILiteral|IParameter|IQueryFunction $length The length of the substring
 	 *
 	 * @return IQueryFunction
 	 * @since 12.0.0
 	 */
-	public function substring($input, $start, $length = null);
+	public function substring($input, $start, $length = null): IQueryFunction;
 
 	/**
 	 * Takes the sum of all rows in a column
 	 *
-	 * @param mixed $field the column to sum
+	 * @param string|ILiteral|IParameter|IQueryFunction $field the column to sum
 	 *
 	 * @return IQueryFunction
 	 * @since 12.0.0
 	 */
-	public function sum($field);
+	public function sum($field): IQueryFunction;
 
 	/**
 	 * Transforms a string field or value to lower case
 	 *
-	 * @param mixed $field
+	 * @param string|ILiteral|IParameter|IQueryFunction $field
 	 * @return IQueryFunction
 	 * @since 14.0.0
 	 */
-	public function lower($field);
+	public function lower($field): IQueryFunction;
 
 	/**
-	 * @param mixed $x The first input field or number
-	 * @param mixed $y The second input field or number
+	 * @param string|ILiteral|IParameter|IQueryFunction $x The first input field or number
+	 * @param string|ILiteral|IParameter|IQueryFunction $y The second input field or number
 	 * @return IQueryFunction
 	 * @since 14.0.0
 	 */
-	public function add($x, $y);
+	public function add($x, $y): IQueryFunction;
 
 	/**
-	 * @param mixed $x The first input field or number
-	 * @param mixed $y The second input field or number
+	 * @param string|ILiteral|IParameter|IQueryFunction $x The first input field or number
+	 * @param string|ILiteral|IParameter|IQueryFunction $y The second input field or number
 	 * @return IQueryFunction
 	 * @since 14.0.0
 	 */
-	public function subtract($x, $y);
+	public function subtract($x, $y): IQueryFunction;
 
 	/**
-	 * @param mixed $count The input to be counted
+	 * @param string|ILiteral|IParameter|IQueryFunction $count The input to be counted
 	 * @param string $alias Alias for the counter
 	 *
 	 * @return IQueryFunction
 	 * @since 14.0.0
 	 */
-	public function count($count = '', $alias = '');
+	public function count($count = '', $alias = ''): IQueryFunction;
 
 	/**
 	 * Takes the maximum of all rows in a column
 	 *
 	 * If you want to get the maximum value of multiple columns in the same row, use `greatest` instead
 	 *
-	 * @param mixed $field the column to maximum
+	 * @param string|ILiteral|IParameter|IQueryFunction $field the column to maximum
 	 *
 	 * @return IQueryFunction
 	 * @since 18.0.0
 	 */
-	public function max($field);
+	public function max($field): IQueryFunction;
 
 	/**
 	 * Takes the minimum of all rows in a column
 	 *
 	 * If you want to get the minimum value of multiple columns in the same row, use `least` instead
 	 *
-	 * @param mixed $field the column to minimum
+	 * @param string|ILiteral|IParameter|IQueryFunction $field the column to minimum
 	 *
 	 * @return IQueryFunction
 	 * @since 18.0.0
 	 */
-	public function min($field);
+	public function min($field): IQueryFunction;
 
 	/**
 	 * Takes the maximum of multiple values
@@ -142,7 +142,7 @@ interface IFunctionBuilder {
 	 * @return IQueryFunction
 	 * @since 18.0.0
 	 */
-	public function greatest($x, $y);
+	public function greatest($x, $y): IQueryFunction;
 
 	/**
 	 * Takes the minimum of multiple values
@@ -154,5 +154,5 @@ interface IFunctionBuilder {
 	 * @return IQueryFunction
 	 * @since 18.0.0
 	 */
-	public function least($x, $y);
+	public function least($x, $y): IQueryFunction;
 }