Files
cosmopolite/externs/cosmopolite.js

185 lines
4.3 KiB
JavaScript
Raw Normal View History

2014-06-14 11:00:35 -07:00
/**
* @fileoverview Definitions for Cosmopolite API. Details of the API are at:
* https://www.cosmopolite.org/reference
*
* @externs
* @author ian@cosmopolite.org (Ian Gulliver)
*/
2014-06-16 21:34:41 -07:00
/**
* @return {number}
*/
String.prototype.hashCode = function() {};
2014-06-14 11:05:53 -07:00
/**
* @see https://www.cosmopolite.org/reference#callbacks
* @typedef {{onConnect: (function()|undefined),
* onDisconnect: (function()|undefined),
* onLogin: (function(string, string)|undefined),
* onLogout: (function(string)|undefined),
* onMessage: (function(Cosmopolite.typeMessage)|undefined),
* onPin: (function(Cosmopolite.typeMessage)|undefined),
* onUnpin: (function(Cosmopolite.typeMessage)|undefined)}}
*/
Cosmopolite.typeCallbacks;
/**
* @see https://www.cosmopolite.org/reference#message
* @typedef {{event_type: string,
* id: number,
* created: number,
* sender: string,
* subject: Cosmopolite.typeSubject,
* message: *}}
*/
Cosmopolite.typeMessage;
/**
* @see https://www.cosmopolite.org/reference#subject
* @typedef {{name: string,
* readable_only_by: (string|undefined),
* writable_only_by: (string|undefined)}}
*/
Cosmopolite.typeSubject;
2014-06-14 12:21:16 -07:00
/**
* @see https://www.cosmopolite.org/reference#subject
* @typedef {(Cosmopolite.typeSubject|string|number)}
*/
2014-06-14 11:05:53 -07:00
Cosmopolite.typeSubjectLoose;
2014-06-14 11:00:35 -07:00
/**
* @see https://www.cosmopolite.org/reference#constructor
* @constructor
* @param {?Cosmopolite.typeCallbacks=} opt_callbacks
* @param {?string=} opt_urlPrefix
* @param {?string=} opt_namespace
* @param {?string=} opt_trackingID
* @nosideeffects
*/
function Cosmopolite(
opt_callbacks, opt_urlPrefix, opt_namespace, opt_trackingID) {}
2014-06-14 12:21:16 -07:00
/**
* @see https://www.cosmopolite.org/reference#shutdown
*/
Cosmopolite.prototype.shutdown = function() {};
/**
* @see https://www.cosmopolite.org/reference#getProfile
* @return {Promise}
* @nosideeffects
*/
Cosmopolite.prototype.getProfile = function() {};
/**
* @see https://www.cosmopolite.org/reference#currentProfile
* @const
* @nosideeffects
*/
Cosmopolite.prototype.currentProfile = function() {};
2014-06-14 11:00:35 -07:00
/**
* @see https://www.cosmopolite.org/reference#subscribe
* @param {Cosmopolite.typeSubjectLoose|Array.<Cosmopolite.typeSubjectLoose>}
* subjects
* @param {?number=} opt_messages
* @param {?number=} opt_lastID
* @return {Promise|Array.<Promise>}
*/
Cosmopolite.prototype.subscribe =
function(subjects, opt_messages, opt_lastID) {};
2014-06-14 12:21:16 -07:00
/**
* @see https://www.cosmopolite.org/reference#unsubscribe
* @param {Cosmopolite.typeSubjectLoose} subject
* @return {Promise}
*/
Cosmopolite.prototype.unsubscribe = function(subject) {};
/**
* @see https://www.cosmopolite.org/reference#sendMessage
* @param {Cosmopolite.typeSubjectLoose} subject
* @param {!*} message
* @return {Promise}
*/
Cosmopolite.prototype.sendMessage = function(subject, message) {};
/**
* @see https://www.cosmopolite.org/reference#getMessages
* @param {Cosmopolite.typeSubjectLoose} subject
* @return {Array.<Cosmopolite.typeMessage>}
* @const
* @nosideeffects
*/
Cosmopolite.prototype.getMessages = function(subject) {};
/**
* @see https://www.cosmopolite.org/reference#getLastMessage
* @param {Cosmopolite.typeSubjectLoose} subject
* @return {?Cosmopolite.typeMessage}
* @const
* @nosideeffects
*/
Cosmopolite.prototype.getLastMessage = function(subject) {};
/**
* @see https://www.cosmopolite.org/reference#pin_method
* @param {Cosmopolite.typeSubjectLoose} subject
* @param {!*} message
* @return {Promise}
*/
Cosmopolite.prototype.pin = function(subject, message) {};
/**
* @see https://www.cosmopolite.org/reference#unpin
* @param {string} id
* @return {Promise}
*/
Cosmopolite.prototype.unpin = function(id) {};
/**
* @see https://www.cosmopolite.org/reference#getPins
* @param {Cosmopolite.typeSubjectLoose} subject
* @return {Array.<Cosmopolite.typeMessage>}
* @const
* @nosideeffects
*/
Cosmopolite.prototype.getPins = function(subject) {};
/**
* @see https://www.cosmopolite.org/reference#trackEvent
* @param {...*} var_args
*/
Cosmopolite.prototype.trackEvent = function(var_args) {};
/**
* @see https://www.cosmopolite.org/reference#uuid
* @return {string}
* @const
* @nosideeffects
*/
Cosmopolite.prototype.uuid = function() {};