// Automatically generated from TypeScript type definitions provided by
// DefinitelyTyped (https://github.com/DefinitelyTyped/DefinitelyTyped),
// which is licensed under the MIT license; see file DefinitelyTyped-LICENSE
// in parent directory.
// Type definitions for Node.js 10.5.x
// Project: http://nodejs.org/
// Definitions by: Microsoft TypeScript
// DefinitelyTyped
// Parambir Singh
// Christian Vaagland Tellnes
// Wilco Bakker
// Nicolas Voigt
// Chigozirim C.
// Flarna
// Mariusz Wiktorczyk
// wwwy3y3
// Deividas Bakanas
// Kelvin Jin
// Alvis HT Tang
// Sebastian Silbermann
// Hannes Magnusson
// Alberto Schiabel
// Klaus Meinhardt
// Huw
// Nicolas Even
// Bruno Scheufler
// Mohsen Azimi
// Hoà ng VÄn Khải
// Alexander T.
// Lishude
// Andrew Makarov
// Zane Hannan AU
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/**
* @externs
* @fileoverview Definitions for module "https"
*/
var https = {};
var tls = require("tls");
var http = require("http");
/**
* @interface
*/
https.ServerOptions = function() {};
/**
* @type {*}
*/
https.ServerOptions.prototype.pfx;
/**
* @type {*}
*/
https.ServerOptions.prototype.key;
/**
* @type {string}
*/
https.ServerOptions.prototype.passphrase;
/**
* @type {*}
*/
https.ServerOptions.prototype.cert;
/**
* @type {*}
*/
https.ServerOptions.prototype.ca;
/**
* @type {*}
*/
https.ServerOptions.prototype.crl;
/**
* @type {string}
*/
https.ServerOptions.prototype.ciphers;
/**
* @type {boolean}
*/
https.ServerOptions.prototype.honorCipherOrder;
/**
* @type {boolean}
*/
https.ServerOptions.prototype.requestCert;
/**
* @type {boolean}
*/
https.ServerOptions.prototype.rejectUnauthorized;
/**
* @type {*}
*/
https.ServerOptions.prototype.NPNProtocols;
/**
* @type {(function(string, (function(Error, tls.SecureContext): *)): *)}
*/
https.ServerOptions.prototype.SNICallback;
/**
* @interface
* @extends {http.RequestOptions}
*/
https.RequestOptions = function() {};
/**
* @type {*}
*/
https.RequestOptions.prototype.pfx;
/**
* @type {*}
*/
https.RequestOptions.prototype.key;
/**
* @type {string}
*/
https.RequestOptions.prototype.passphrase;
/**
* @type {*}
*/
https.RequestOptions.prototype.cert;
/**
* @type {*}
*/
https.RequestOptions.prototype.ca;
/**
* @type {string}
*/
https.RequestOptions.prototype.ciphers;
/**
* @type {boolean}
*/
https.RequestOptions.prototype.rejectUnauthorized;
/**
* @type {string}
*/
https.RequestOptions.prototype.secureProtocol;
/**
* @interface
* @extends {http.Agent}
*/
https.Agent = function() {};
/**
* @interface
* @extends {http.AgentOptions}
*/
https.AgentOptions = function() {};
/**
* @type {*}
*/
https.AgentOptions.prototype.pfx;
/**
* @type {*}
*/
https.AgentOptions.prototype.key;
/**
* @type {string}
*/
https.AgentOptions.prototype.passphrase;
/**
* @type {*}
*/
https.AgentOptions.prototype.cert;
/**
* @type {*}
*/
https.AgentOptions.prototype.ca;
/**
* @type {string}
*/
https.AgentOptions.prototype.ciphers;
/**
* @type {boolean}
*/
https.AgentOptions.prototype.rejectUnauthorized;
/**
* @type {string}
*/
https.AgentOptions.prototype.secureProtocol;
/**
* @type {number}
*/
https.AgentOptions.prototype.maxCachedSessions;
/**
* @type {(function(new: https.Agent, https.AgentOptions=))}
*/
https.Agent;
/**
* @interface
* @extends {tls.Server}
*/
https.Server = function() {};
/**
* @param {https.ServerOptions} options
* @param {Function=} requestListener
* @return {https.Server}
*/
https.createServer = function(options, requestListener) {};
/**
* @param {https.RequestOptions} options
* @param {(function(http.IncomingMessage): void)=} callback
* @return {http.ClientRequest}
*/
https.request = function(options, callback) {};
/**
* @param {https.RequestOptions} options
* @param {(function(http.IncomingMessage): void)=} callback
* @return {http.ClientRequest}
*/
https.get = function(options, callback) {};
/**
* @type {https.Agent}
*/
https.globalAgent;
module.exports.ServerOptions = https.ServerOptions;
module.exports.RequestOptions = https.RequestOptions;
module.exports.Agent = https.Agent;
module.exports.AgentOptions = https.AgentOptions;
module.exports.Agent = https.Agent;
module.exports.Server = https.Server;
module.exports.createServer = https.createServer;
module.exports.request = https.request;
module.exports.get = https.get;
module.exports.globalAgent = https.globalAgent;