/*global goog:false*/

goog.require('goog.net.XhrIo');
goog.require('goog.Promise');

/**
 * @fileoverview Wrapper of github.js or implements some API endpoints
 * which are not supported by github.js.
 */

if (typeof module !== 'undefined' && module.exports) {
  require('google-closure-library/closure/goog/bootstrap/nodejs');
}

class Github {
  /**
   * @param {string} username GitHub username.
   * @returns {goog.Promise<ContributionsCalendar>}
   */
  getContributionsCalendarOf(username){
  }
}

/**
 * @typedef {{length: number}}
 * Currently it represents only count of the contributions of the day.
 */
Github.Contributions;

/**
 * @typedef {Object<string, Contributions>}
 * Its key represents the date of contribution as a string formatted as 'YYYY-MM-DD'.
 * And the value contains a set of contribution of the day.
 */
Github.ContributionsCalendar;

export default Github;

@@ -642,48 +642,84 @@
 %0A * 
-@typedef %7BObject%3Cstring, Contributions%3E%7D
+Key-value store representing a contribution calendar in GitHub profile page.
 %0A * 
@@ -726,25 +726,17 @@
 Its key 
-represent
+i
 s the da
@@ -757,119 +757,403 @@
 tion
- as a string formatted as 'YYYY-MM-DD'.%0A * And the value contains a set of contribution of the day.%0A */%0AGithub.
+.%0A * And the value contains a set of contribution of the day.%0A */%0Aclass ContributionsCalendar %7B%0A  /**%0A   * @param %7Bstring%7D svg Response data from github.com/users/%3Cusername%3E/contributions%0A   */%0A  constructor(svg)%7B%0A  %7D%0A%0A  /**%0A   * Retrieve Contributions set by Date%0A   * @param %7BDate%7D date%0A   * @returns %7BGithub.Contributions%7D%0A   */%0A  contributionsAt(date)%7B%0A  %7D%0A%7D%0A%0AGithub.ContributionsCalendar = 
 Cont

split ContributionsCalendar as a concreate class