]> git.mxchange.org Git - friendica.git/commitdiff
Added more type-hints
authorRoland Häder <roland@mxchange.org>
Thu, 16 Jun 2022 12:59:29 +0000 (14:59 +0200)
committerRoland Häder <roland@mxchange.org>
Fri, 17 Jun 2022 15:18:31 +0000 (17:18 +0200)
src/Model/APContact.php
src/Protocol/Activity.php
src/Protocol/ActivityPub.php
src/Protocol/ActivityPub/Processor.php
src/Protocol/ActivityPub/Receiver.php
src/Protocol/ActivityPub/Transmitter.php
src/Protocol/DFRN.php

index 9c972efaf2143b557c3809bccb92482816f9b4bb..a93484861226754eea85073035c09e9290005d6f 100644 (file)
@@ -117,7 +117,7 @@ class APContact
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function getByURL($url, $update = null)
+       public static function getByURL(string $url, $update = null)
        {
                if (empty($url) || Network::isUrlBlocked($url)) {
                        Logger::info('Domain is blocked', ['url' => $url]);
index e75b1cf507213b00919be6f7560f5a30453da15f..0f15e851c3df8ee3a5ec7900bcceffb27f68d040 100644 (file)
@@ -212,7 +212,7 @@ final class Activity
         *
         * @return bool True, if the activity is hidden
         */
-       public function isHidden(string $activity)
+       public function isHidden(string $activity): bool
        {
                foreach (self::HIDDEN_ACTIVITIES as $hiddenActivity) {
                        if ($this->match($activity, $hiddenActivity)) {
@@ -231,7 +231,7 @@ final class Activity
         *
         * @return boolean
         */
-       public function match(string $haystack, string $needle)
+       public function match(string $haystack, string $needle): bool
        {
                return (($haystack === $needle) ||
                        ((basename($needle) === $haystack) &&
index 78496e2433de2e87fb8db7378f8251db9d536cf5..b9ab3931bd3de72ac965de2bf2d1dfd039b7607f 100644 (file)
@@ -104,12 +104,12 @@ class ActivityPub
         * @return array
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function fetchContent(string $url, int $uid = 0)
+       public static function fetchContent(string $url, int $uid = 0): array
        {
                return HTTPSignature::fetch($url, $uid);
        }
 
-       private static function getAccountType($apcontact)
+       private static function getAccountType(array $apcontact): int
        {
                $accounttype = -1;
 
@@ -146,7 +146,7 @@ class ActivityPub
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function probeProfile($url, $update = true)
+       public static function probeProfile(string $url, bool $update = true): array
        {
                $apcontact = APContact::getByURL($url, $update);
                if (empty($apcontact)) {
@@ -204,7 +204,7 @@ class ActivityPub
         * @param integer $uid User ID
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function fetchOutbox($url, $uid)
+       public static function fetchOutbox(string $url, int $uid)
        {
                $data = self::fetchContent($url, $uid);
                if (empty($data)) {
@@ -235,7 +235,7 @@ class ActivityPub
         * @param integer $uid Optional user id
         * @return array Endpoint items
         */
-       public static function fetchItems(string $url, int $uid = 0)
+       public static function fetchItems(string $url, int $uid = 0): array
        {
                $data = self::fetchContent($url, $uid);
                if (empty($data)) {
@@ -268,7 +268,7 @@ class ActivityPub
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function isSupportedByContactUrl($url, $update = null)
+       public static function isSupportedByContactUrl(string $url, $update = null)
        {
                return !empty(APContact::getByURL($url, $update));
        }
index 2288427b476f3fb06de065d62b86bc4ee5fa87df..c2333004f517ec79e797b4dcd89add995e0beb48 100644 (file)
@@ -94,7 +94,7 @@ class Processor
         *
         * @return string with replaced emojis
         */
-       private static function replaceEmojis(int $uri_id, string $body, array $emojis)
+       private static function replaceEmojis(int $uri_id, string $body, array $emojis): string
        {
                $body = strtr($body,
                        array_combine(
@@ -690,7 +690,7 @@ class Processor
         * @param string $url message URL
         * @return string with GUID
         */
-       private static function getGUIDByURL(string $url)
+       private static function getGUIDByURL(string $url): string
        {
                $parsed = parse_url($url);
 
@@ -711,7 +711,7 @@ class Processor
         * @param array $item
         * @return boolean Is the message wanted?
         */
-       private static function isSolicitedMessage(array $activity, array $item)
+       private static function isSolicitedMessage(array $activity, array $item): bool
        {
                // The checks are split to improve the support when searching why a message was accepted.
                if (count($activity['receiver']) != 1) {
@@ -972,7 +972,7 @@ class Processor
         * @return int|bool New mail table row id or false on error
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       private static function postMail($activity, $item)
+       private static function postMail(array $activity, array $item)
        {
                if (($item['gravity'] != GRAVITY_PARENT) && !DBA::exists('mail', ['uri' => $item['thr-parent'], 'uid' => $item['uid']])) {
                        Logger::info('Parent not found, mail will be discarded.', ['uid' => $item['uid'], 'uri' => $item['thr-parent']]);
@@ -1113,7 +1113,7 @@ class Processor
         * @return string fetched message URL
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function fetchMissingActivity(string $url, array $child = [], string $relay_actor = '', int $completion = Receiver::COMPLETION_MANUAL)
+       public static function fetchMissingActivity(string $url, array $child = [], string $relay_actor = '', int $completion = Receiver::COMPLETION_MANUAL): string
        {
                if (!empty($child['receiver'])) {
                        $uid = ActivityPub\Receiver::getFirstUserFromReceivers($child['receiver']);
@@ -1208,7 +1208,7 @@ class Processor
         * @param string $id      object ID
         * @return boolean true if message is accepted
         */
-       private static function acceptIncomingMessage(array $activity, string $id)
+       private static function acceptIncomingMessage(array $activity, string $id): bool
        {
                if (empty($activity['as:object'])) {
                        Logger::info('No object field in activity - accepted', ['id' => $id]);
@@ -1248,7 +1248,7 @@ class Processor
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function followUser($activity)
+       public static function followUser(array $activity)
        {
                $uid = User::getIdForURL($activity['object_id']);
                if (empty($uid)) {
@@ -1326,7 +1326,7 @@ class Processor
         * @param array $activity
         * @throws \Exception
         */
-       public static function updatePerson($activity)
+       public static function updatePerson(array $activity)
        {
                if (empty($activity['object_id'])) {
                        return;
@@ -1342,7 +1342,7 @@ class Processor
         * @param array $activity
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function deletePerson($activity)
+       public static function deletePerson(array $activity)
        {
                if (empty($activity['object_id']) || empty($activity['actor'])) {
                        Logger::info('Empty object id or actor.');
@@ -1369,7 +1369,7 @@ class Processor
         * @param array $activity
         * @throws \Exception
         */
-       public static function blockAccount($activity)
+       public static function blockAccount(array $activity)
        {
                $cid = Contact::getIdForURL($activity['actor']);
                if (empty($cid)) {
@@ -1392,7 +1392,7 @@ class Processor
         * @param array $activity
         * @throws \Exception
         */
-       public static function unblockAccount($activity)
+       public static function unblockAccount(array $activity)
        {
                $cid = Contact::getIdForURL($activity['actor']);
                if (empty($cid)) {
@@ -1416,7 +1416,7 @@ class Processor
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function acceptFollowUser($activity)
+       public static function acceptFollowUser(array $activity)
        {
                $uid = User::getIdForURL($activity['object_actor']);
                if (empty($uid)) {
@@ -1450,7 +1450,7 @@ class Processor
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function rejectFollowUser($activity)
+       public static function rejectFollowUser(array $activity)
        {
                $uid = User::getIdForURL($activity['object_actor']);
                if (empty($uid)) {
@@ -1483,7 +1483,7 @@ class Processor
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function undoActivity($activity)
+       public static function undoActivity(array $activity)
        {
                if (empty($activity['object_id'])) {
                        return;
@@ -1508,7 +1508,7 @@ class Processor
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function undoFollowUser($activity)
+       public static function undoFollowUser(array $activity)
        {
                $uid = User::getIdForURL($activity['object_object']);
                if (empty($uid)) {
@@ -1543,7 +1543,7 @@ class Processor
         * @param integer $cid Contact ID
         * @throws \Exception
         */
-       private static function switchContact($cid)
+       private static function switchContact(int $cid)
        {
                $contact = DBA::selectFirst('contact', ['network', 'url'], ['id' => $cid]);
                if (!DBA::isResult($contact) || in_array($contact['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN]) || Contact::isLocal($contact['url'])) {
@@ -1563,7 +1563,7 @@ class Processor
         * @return array
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       private static function getImplicitMentionList(array $parent)
+       private static function getImplicitMentionList(array $parent): array
        {
                $parent_terms = Tag::getByURIId($parent['uri-id'], [Tag::MENTION, Tag::IMPLICIT_MENTION, Tag::EXCLUSIVE_MENTION]);
 
@@ -1601,7 +1601,7 @@ class Processor
         * @param array $parent
         * @return string
         */
-       private static function removeImplicitMentionsFromBody(string $body, array $parent)
+       private static function removeImplicitMentionsFromBody(string $body, array $parent): string
        {
                if (DI::config()->get('system', 'disable_implicit_mentions')) {
                        return $body;
index 4a138729830d6c01fbad755482a8d89614ef95b1..05c40222b12089af3251ba654d968dbe985124c6 100644 (file)
@@ -84,8 +84,9 @@ class Receiver
         * @param         $header
         * @param integer $uid User ID
         * @throws \Exception
+        * @todo Find type for $body/$header
         */
-       public static function processInbox($body, $header, $uid)
+       public static function processInbox($body, $header, int $uid)
        {
                $activity = json_decode($body, true);
                if (empty($activity)) {
@@ -220,11 +221,11 @@ class Receiver
         * @param string  $object_id Object ID of the the provided object
         * @param integer $uid       User ID
         *
-        * @return string with object type
+        * @return string with object type or NULL
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       private static function fetchObjectType($activity, $object_id, $uid = 0)
+       private static function fetchObjectType(array $activity, string $object_id, int $uid = 0)
        {
                if (!empty($activity['as:object'])) {
                        $object_type = JsonLD::fetchElement($activity['as:object'], '@type');
@@ -268,7 +269,7 @@ class Receiver
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function prepareObjectData($activity, $uid, $push, &$trust_source)
+       public static function prepareObjectData(array $activity, int $uid, bool $push, bool &$trust_source): array
        {
                $id = JsonLD::fetchElement($activity, '@id');
                if (!empty($id) && !$trust_source) {
@@ -458,7 +459,7 @@ class Receiver
         * @param array $receivers Array with receivers
         * @return integer user id;
         */
-       public static function getFirstUserFromReceivers($receivers)
+       public static function getFirstUserFromReceivers(array $receivers): int
        {
                foreach ($receivers as $receiver) {
                        if (!empty($receiver)) {
@@ -479,7 +480,7 @@ class Receiver
         * @param array   $signer       The signer of the post
         * @throws \Exception
         */
-       public static function processActivity($activity, string $body = '', int $uid = null, bool $trust_source = false, bool $push = false, array $signer = [])
+       public static function processActivity(array $activity, string $body = '', int $uid = null, bool $trust_source = false, bool $push = false, array $signer = [])
        {
                $type = JsonLD::fetchElement($activity, '@type');
                if (!$type) {
@@ -818,7 +819,7 @@ class Receiver
         *
         * @return int   user id
         */
-       public static function getBestUserForActivity(array $activity)
+       public static function getBestUserForActivity(array $activity): int
        {
                $uid = 0;
                $actor = JsonLD::fetchElement($activity, 'as:actor', '@id') ?? '';
@@ -844,7 +845,8 @@ class Receiver
                return $uid;
        }
 
-       public static function getReceiverURL($activity)
+       // @TODO Missing documentation
+       public static function getReceiverURL(array $activity): array
        {
                $urls = [];
 
@@ -876,7 +878,7 @@ class Receiver
         * @return array with receivers (user id)
         * @throws \Exception
         */
-       private static function getReceivers($activity, $actor, $tags = [], $fetch_unlisted = false)
+       private static function getReceivers(array $activity, string $actor, array $tags = [], bool $fetch_unlisted = false): array
        {
                $reply = $receivers = [];
 
@@ -1005,7 +1007,7 @@ class Receiver
         * @return array with receivers (user id)
         * @throws \Exception
         */
-       private static function getReceiverForActor($actor, $tags, $receivers, $target_type, $profile)
+       private static function getReceiverForActor(string $actor, array $tags, array $receivers, int $target_type, array $profile): array
        {
                $basecondition = ['rel' => [Contact::SHARING, Contact::FRIEND, Contact::FOLLOWER],
                        'network' => Protocol::FEDERATED, 'archive' => false, 'pending' => false];
@@ -1047,13 +1049,12 @@ class Receiver
         * Tests if the contact is a valid receiver for this actor
         *
         * @param array  $contact
-        * @param string $actor
         * @param array  $tags
         *
         * @return bool with receivers (user id)
         * @throws \Exception
         */
-       private static function isValidReceiverForActor($contact, $tags)
+       private static function isValidReceiverForActor(array $contact, string $tags): bool
        {
                // Are we following the contact? Then this is a valid receiver
                if (in_array($contact['rel'], [Contact::SHARING, Contact::FRIEND])) {
@@ -1089,7 +1090,7 @@ class Receiver
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function switchContact($cid, $uid, $url)
+       public static function switchContact(int $cid, int $uid, string $url)
        {
                if (DBA::exists('contact', ['id' => $cid, 'network' => Protocol::ACTIVITYPUB])) {
                        Logger::info('Contact is already ActivityPub', ['id' => $cid, 'uid' => $uid, 'url' => $url]);
@@ -1108,7 +1109,7 @@ class Receiver
        }
 
        /**
-        *
+        * @TODO Fix documentation and type-hints
         *
         * @param $receivers
         * @param $actor
@@ -1135,14 +1136,14 @@ class Receiver
        }
 
        /**
-        *
+        * @TODO Fix documentation and type-hints
         *
         * @param       $object_data
         * @param array $activity
         *
         * @return mixed
         */
-       private static function addActivityFields($object_data, $activity)
+       private static function addActivityFields($object_data, array $activity)
        {
                if (!empty($activity['published']) && empty($object_data['published'])) {
                        $object_data['published'] = JsonLD::fetchElement($activity, 'as:published', '@value');
@@ -1262,7 +1263,7 @@ class Receiver
         * @param array $languages
         * @return array Languages
         */
-       public static function processLanguages(array $languages)
+       public static function processLanguages(array $languages): array
        {
                if (empty($languages)) {
                        return [];
@@ -1285,7 +1286,7 @@ class Receiver
         *
         * @return array with tags in a simplified format
         */
-       public static function processTags(array $tags)
+       public static function processTags(array $tags): array
        {
                $taglist = [];
 
@@ -1317,7 +1318,7 @@ class Receiver
         * @param array $emojis
         * @return array with emojis in a simplified format
         */
-       private static function processEmojis(array $emojis)
+       private static function processEmojis(array $emojis): array
        {
                $emojilist = [];
 
@@ -1343,7 +1344,7 @@ class Receiver
         *
         * @return array Attachments in a simplified format
         */
-       private static function processAttachments(array $attachments)
+       private static function processAttachments(array $attachments): array
        {
                $attachlist = [];
 
@@ -1460,7 +1461,7 @@ class Receiver
         *
         * @return array Questions in a simplified format
         */
-       private static function processQuestion(array $object)
+       private static function processQuestion(array $object): array
        {
                $question = [];
 
@@ -1518,10 +1519,10 @@ class Receiver
         * @param array $object
         * @param array $object_data
         *
-        * @return array
+        * @return array Object data (?)
         * @throws \Exception
         */
-       private static function getSource($object, $object_data)
+       private static function getSource(array $object, array $object_data): array
        {
                $object_data['source'] = JsonLD::fetchElement($object, 'as:source', 'as:content', 'as:mediaType', 'text/bbcode');
                $object_data['source'] = JsonLD::fetchElement($object_data, 'source', '@value');
@@ -1650,10 +1651,10 @@ class Receiver
         *
         * @param array $object
         *
-        * @return array
+        * @return array|bool Object data or FALSE if $object does not contain @id element
         * @throws \Exception
         */
-       private static function processObject($object)
+       private static function processObject(array $object)
        {
                if (!JsonLD::fetchElement($object, '@id')) {
                        return false;
index 023bd5c83cce179c8c6cd16d2f9408b099f41f72..8483d5d1dd59ddadb121dbf50df69e4792addd65 100644 (file)
@@ -68,7 +68,7 @@ class Transmitter
         * @param array $inboxes
         * @return array inboxes with added relay servers
         */
-       public static function addRelayServerInboxes(array $inboxes = [])
+       public static function addRelayServerInboxes(array $inboxes = []): array
        {
                foreach (Relay::getList(['inbox']) as $contact) {
                        $inboxes[$contact['inbox']] = $contact['inbox'];
@@ -83,7 +83,7 @@ class Transmitter
         * @param array $inboxes
         * @return array inboxes with added relay servers
         */
-       public static function addRelayServerInboxesForItem(int $item_id, array $inboxes = [])
+       public static function addRelayServerInboxesForItem(int $item_id, array $inboxes = []): array
        {
                $item = Post::selectFirst(['uid'], ['id' => $item_id]);
                if (empty($item)) {
index 0fb7394579f7513d4667d600f5b598aef9306f75..fc72f7e371e29e39dc2d058be99b4914247de14d 100644 (file)
@@ -72,7 +72,7 @@ class DFRN
         * @return array importer
         * @throws \Exception
         */
-       public static function getImporter($cid, $uid = 0)
+       public static function getImporter(int $cid, int $uid = 0): array
        {
                $condition = ['id' => $cid, 'blocked' => false, 'pending' => false];
                $contact = DBA::selectFirst('contact', [], $condition);
@@ -115,7 +115,7 @@ class DFRN
         * @throws \ImagickException
         * @todo  Find proper type-hints
         */
-       public static function entries($items, $owner)
+       public static function entries(array $items, array $owner): string
        {
                $doc = new DOMDocument('1.0', 'utf-8');
                $doc->formatOutput = true;
@@ -152,7 +152,7 @@ class DFRN
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function itemFeed(int $uri_id, int $uid, bool $conversation = false)
+       public static function itemFeed(int $uri_id, int $uid, bool $conversation = false): string
        {
                if ($conversation) {
                        $condition = ['parent-uri-id' => $uri_id];
@@ -222,7 +222,7 @@ class DFRN
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @todo  Find proper type-hints
         */
-       public static function mail(array $mail, array $owner)
+       public static function mail(array $mail, array $owner): string
        {
                $doc = new DOMDocument('1.0', 'utf-8');
                $doc->formatOutput = true;
@@ -259,7 +259,7 @@ class DFRN
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @todo  Find proper type-hints
         */
-       public static function fsuggest($item, $owner)
+       public static function fsuggest(array $item, array $owner): string
        {
                $doc = new DOMDocument('1.0', 'utf-8');
                $doc->formatOutput = true;
@@ -289,7 +289,7 @@ class DFRN
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @todo  Find proper type-hints
         */
-       public static function relocate($owner, $uid)
+       public static function relocate(array $owner, int $uid): string
        {
 
                /* get site pubkey. this could be a new installation with no site keys*/
@@ -346,9 +346,9 @@ class DFRN
         *
         * @return object XML root object
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
-        * @todo  Find proper type-hints
+        * @todo  Find proper type-hint for returned type
         */
-       private static function addHeader(DOMDocument $doc, $owner, $authorelement, $alternatelink = "", $public = false)
+       private static function addHeader(DOMDocument $doc, array $owner, string $authorelement, string $alternatelink = "", bool $public = false)
        {
 
                if ($alternatelink == "") {
@@ -428,8 +428,12 @@ class DFRN
         * viewer's timezone also, but first we are going to convert it from the birthday
         * person's timezone to GMT - so the viewer may find the birthday starting at
         * 6:00PM the day before, but that will correspond to midnight to the birthday person.
+        *
+        * @param int $uid User id
+        * @param string $tz Time zone string, like UTC
+        * @return string Formatted birthday string
         */
-       private static function determineNextBirthday($uid, $tz)
+       private static function determineNextBirthday(int $uid, string $tz): string
        {
                $birthday = '';
 
@@ -467,7 +471,7 @@ class DFRN
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @todo  Find proper type-hints
         */
-       private static function addAuthor(DOMDocument $doc, array $owner, $authorelement, $public)
+       private static function addAuthor(DOMDocument $doc, array $owner, string $authorelement, bool $public)
        {
                // Should the profile be "unsearchable" in the net? Then add the "hide" element
                $hide = DBA::exists('profile', ['uid' => $owner['uid'], 'net-publish' => false]);
@@ -592,7 +596,7 @@ class DFRN
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @todo  Find proper type-hints
         */
-       private static function addEntryAuthor(DOMDocument $doc, $element, $contact_url, $item)
+       private static function addEntryAuthor(DOMDocument $doc, string $element, string $contact_url, array $item)
        {
                $author = $doc->createElement($element);
 
@@ -637,7 +641,7 @@ class DFRN
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @todo  Find proper type-hints
         */
-       private static function createActivity(DOMDocument $doc, $element, $activity, $uriid)
+       private static function createActivity(DOMDocument $doc, string $element, string $activity, int $uriid)
        {
                if ($activity) {
                        $entry = $doc->createElement($element);
@@ -703,7 +707,7 @@ class DFRN
         * @return void XML attachment object
         * @todo  Find proper type-hints
         */
-       private static function getAttachment($doc, $root, $item)
+       private static function getAttachment($doc, $root, array $item)
        {
                foreach (Post\Media::getByURIId($item['uri-id'], [Post\Media::DOCUMENT, Post\Media::TORRENT, Post\Media::UNKNOWN]) as $attachment) {
                        $attributes = ['rel' => 'enclosure',
@@ -737,7 +741,7 @@ class DFRN
         * @throws \ImagickException
         * @todo  Find proper type-hints
         */
-       private static function entry(DOMDocument $doc, $type, array $item, array $owner, $comment = false, $cid = 0, $single = false)
+       private static function entry(DOMDocument $doc, string $type, array $item, array $owner, bool $comment = false, int $cid = 0, bool $single = false)
        {
                $mentioned = [];
 
@@ -961,13 +965,12 @@ class DFRN
         * @param array  $owner   Owner record
         * @param array  $contact Contact record of the receiver
         * @param string $atom    Content that will be transmitted
-        *
         * @param bool   $public_batch
         * @return int Deliver status. Negative values mean an error.
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function transmit($owner, $contact, $atom, $public_batch = false)
+       public static function transmit(array $owner, array $contact, string $atom, bool $public_batch = false)
        {
                if (!$public_batch) {
                        if (empty($contact['addr'])) {
@@ -1060,7 +1063,7 @@ class DFRN
         * @throws \ImagickException
         * @todo  Find good type-hints for all parameter
         */
-       private static function fetchauthor(\DOMXPath $xpath, \DOMNode $context, $importer, $element, $onlyfetch, $xml = "")
+       private static function fetchauthor(\DOMXPath $xpath, \DOMNode $context, array $importer, string $element, bool $onlyfetch, string $xml = ""): array
        {
                $author = [];
                $author["name"] = XML::getFirstNodeValue($xpath, $element."/atom:name/text()", $context);
@@ -1280,7 +1283,7 @@ class DFRN
         * @return string XML string
         * @todo Find good type-hints for all parameter
         */
-       private static function transformActivity($xpath, $activity, $element)
+       private static function transformActivity($xpath, $activity, string $element): string
        {
                if (!is_object($activity)) {
                        return "";
@@ -1335,7 +1338,7 @@ class DFRN
         * @throws \Exception
         * @todo  Find good type-hints for all parameter
         */
-       private static function processMail($xpath, $mail, $importer)
+       private static function processMail($xpath, $mail, array $importer)
        {
                Logger::notice("Processing mails");
 
@@ -1364,7 +1367,7 @@ class DFRN
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @todo  Find good type-hints for all parameter
         */
-       private static function processSuggestion($xpath, $suggestion, $importer)
+       private static function processSuggestion($xpath, $suggestion, array $importer)
        {
                Logger::notice('Processing suggestions');
 
@@ -1383,7 +1386,7 @@ class DFRN
         * @param integer $from_cid
         * @return bool   Was the adding successful?
         */
-       private static function addSuggestion(int $uid, int $cid, int $from_cid, string $note = '')
+       private static function addSuggestion(int $uid, int $cid, int $from_cid, string $note = ''): bool
        {
                $owner = User::getOwnerDataById($uid);
                $contact = Contact::getById($cid);
@@ -1440,7 +1443,7 @@ class DFRN
         * @throws \ImagickException
         * @todo  Find good type-hints for all parameter
         */
-       private static function processRelocation($xpath, $relocation, $importer)
+       private static function processRelocation($xpath, $relocation, array $importer): bool
        {
                Logger::notice("Processing relocations");
 
@@ -1510,7 +1513,7 @@ class DFRN
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @todo  set proper type-hints (array?)
         */
-       private static function updateContent($current, $item, $importer, $entrytype)
+       private static function updateContent(array $current, array $item, array $importer, int $entrytype)
        {
                $changed = false;
 
@@ -1542,7 +1545,7 @@ class DFRN
         * @throws \Exception
         * @todo  set proper type-hints (array?)
         */
-       private static function getEntryType($importer, $item)
+       private static function getEntryType(array $importer, array $item): int
        {
                if ($item["thr-parent"] != $item["uri"]) {
                        $community = false;
@@ -1638,7 +1641,7 @@ class DFRN
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @todo  set proper type-hints (array?)
         */
-       private static function processVerbs($entrytype, $importer, &$item, &$is_like)
+       private static function processVerbs(int $entrytype, array $importer, array &$item, bool &$is_like)
        {
                Logger::info("Process verb ".$item["verb"]." and object-type ".$item["object-type"]." for entrytype ".$entrytype);
 
@@ -1734,7 +1737,7 @@ class DFRN
         * @return void
         * @todo set proper type-hints
         */
-       private static function parseLinks($links, &$item)
+       private static function parseLinks($links, array &$item)
        {
                $rel = "";
                $href = "";
@@ -1772,7 +1775,7 @@ class DFRN
         * @param array $imporer
         * @return boolean Is the message wanted?
         */
-       private static function isSolicitedMessage(array $item, array $importer)
+       private static function isSolicitedMessage(array $item, array $importer): bool
        {
                if (DBA::exists('contact', ["`nurl` = ? AND `uid` != ? AND `rel` IN (?, ?)",
                        Strings::normaliseLink($item["author-link"]), 0, Contact::FRIEND, Contact::SHARING])) {
@@ -1807,12 +1810,13 @@ class DFRN
         * @param object $entry    entry elements
         * @param array  $importer Record of the importer user mixed with contact of the content
         * @param string $xml      xml
+        * @param int $protocol Protocol
         * @return void
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         * @todo  Add type-hints
         */
-       private static function processEntry($header, $xpath, $entry, $importer, $xml, $protocol)
+       private static function processEntry(array $header, $xpath, $entry, array $importer, string $xml, int $protocol)
        {
                Logger::notice("Processing entries");
 
@@ -2163,7 +2167,7 @@ class DFRN
         * @throws \Exception
         * @todo  set proper type-hints
         */
-       private static function processDeletion($xpath, $deletion, $importer)
+       private static function processDeletion($xpath, $deletion, array $importer)
        {
                Logger::notice("Processing deletions");
                $uri = null;
@@ -2224,9 +2228,8 @@ class DFRN
         * @return integer Import status
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
-        * @todo  set proper type-hints
         */
-       public static function import($xml, $importer, $protocol, $direction)
+       public static function import(string $xml, array $importer, int $protocol, int $direction): int
        {
                if ($xml == "") {
                        return 400;
@@ -2365,7 +2368,7 @@ class DFRN
         *
         * @return string activity verb
         */
-       private static function constructVerb(array $item)
+       private static function constructVerb(array $item): string
        {
                if ($item['verb']) {
                        return $item['verb'];
@@ -2373,7 +2376,8 @@ class DFRN
                return Activity::POST;
        }
 
-       private static function tgroupCheck($uid, $item)
+       // @TODO Documentation missing
+       private static function tgroupCheck(int $uid, array $item): bool
        {
                $mention = false;
 
@@ -2421,12 +2425,12 @@ class DFRN
         * item is assumed to be up-to-date.  If the timestamps are equal it
         * assumes the update has been seen before and should be ignored.
         *
-        * @param $existing
-        * @param $update
+        * @param array $existing
+        * @param array $update
         * @return bool
         * @throws \Exception
         */
-       private static function isEditedTimestampNewer($existing, $update)
+       private static function isEditedTimestampNewer(array $existing, array $update): bool
        {
                if (empty($existing['edited'])) {
                        return true;
@@ -2449,7 +2453,7 @@ class DFRN
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function isSupportedByContactUrl($url)
+       public static function isSupportedByContactUrl(string $url): bool
        {
                $probe = Probe::uri($url, Protocol::DFRN);
                return $probe['network'] == Protocol::DFRN;