"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Octokit = require("@octokit/rest");
var logging_1 = require("./logging");
var pagination_1 = require("./pagination");
var rate_limiting_1 = require("./rate-limiting");
var graphql_1 = require("./graphql");
/**
 * the [@octokit/rest Node.js module](https://github.com/octokit/rest.js),
 * which wraps the [GitHub API](https://developer.github.com/v3/) and allows
 * you to do almost anything programmatically that you can do through a web
 * browser.
 * @typedef github
 * @see {@link https://github.com/octokit/rest.js}
 */
exports.EnhancedGitHubClient = function (options) {
    if (options === void 0) { options = {}; }
    var octokit = new Octokit(options);
    rate_limiting_1.addRateLimiting(octokit, options.limiter);
    logging_1.addLogging(octokit, options.logger);
    pagination_1.addPagination(octokit);
    graphql_1.addGraphQL(octokit);
    return octokit;
};
//# sourceMappingURL=index.js.map