> */ public function listByUser(int $userId, array $options = []): array; public function nextBookmarkSortOrder(int $userId, ?int $groupId): int; public function countByUser(int $userId): int; /** @return array|false */ public function findById(int $id, int $userId): array|false; /** @return array|false */ public function findByUserAndUrl(int $userId, string $url): array|false; public function create(array $data): int|false; public function update(int $id, int $userId, array $data): bool; public function delete(int $id, int $userId): bool; /** @param list $idOrderPairs */ public function updateSortOrders(int $userId, array $idOrderPairs): bool; /** @return list> */ public function listByGroup(int $userId, int $groupId): array; public function unsetGroupId(int $bookmarkId, int $userId, int $sortOrder): bool; }