// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file contains type definitions for the host plugin. It is used only
// with JSCompiler to verify the type-correctness of our code.
/** @suppress {duplicate} */
var remoting = remoting || {};
/** @constructor
* @extends HTMLElement
*/
remoting.HostPlugin = function() {};
/** @param {string} email The email address of the connector.
* @param {string} token The access token for the connector.
* @return {void} Nothing. */
remoting.HostPlugin.prototype.connect = function(email, token) {};
/** @return {void} Nothing. */
remoting.HostPlugin.prototype.disconnect = function() {};
/** @param {function(string):string} callback Pointer to chrome.i18n.getMessage.
* @return {void} Nothing. */
remoting.HostPlugin.prototype.localize = function(callback) {};
/** @param {function(string):void} callback Callback to be called with the
* local hostname.
* @return {void} Nothing. */
remoting.HostPlugin.prototype.getHostName = function(callback) {};
/** @param {string} hostId The host ID.
* @param {string} pin The PIN.
* @param {function(string):void} callback Callback to be called with the hash
* encoded with Base64.
* @return {void} Nothing. */
remoting.HostPlugin.prototype.getPinHash = function(hostId, pin, callback) {};
/** @param {function(string, string):void} callback Callback to be called
* after new key is generated.
* @return {void} Nothing. */
remoting.HostPlugin.prototype.generateKeyPair = function(callback) {};
/**
* Updates host config with the values specified in |config|. All
* fields that are not specified in |config| remain
* unchanged. Following parameters cannot be changed using this
* function: host_id, xmpp_login. Error is returned if |config|
* includes these paramters. Changes take effect before the callback
* is called.
*
* @param {string} config The new config parameters, JSON encoded dictionary.
* @param {function(remoting.HostController.AsyncResult):void} callback
* Callback to be called when finished.
* @return {void} Nothing. */
remoting.HostPlugin.prototype.updateDaemonConfig =
function(config, callback) {};
/** @param {function(string):void} callback Callback to be called with
* the config.
* @return {void} Nothing. */
remoting.HostPlugin.prototype.getDaemonConfig = function(callback) {};
/** @param {function(string):void} callback Callback to be called with
* the version, as a dotted string.
* @return {void} Nothing. */
remoting.HostPlugin.prototype.getDaemonVersion = function(callback) {};
/** @param {function(boolean, boolean, boolean):void} callback Callback to be
* called with the consent.
* @return {void} Nothing. */
remoting.HostPlugin.prototype.getUsageStatsConsent = function(callback) {};
/** @param {string} config Host configuration.
* @param {function(remoting.HostController.AsyncResult):void} callback
* Callback to be called when finished.
* @return {void} Nothing. */
remoting.HostPlugin.prototype.startDaemon = function(
config, consent, callback) {};
/** @param {function(remoting.HostController.AsyncResult):void} callback
* Callback to be called when finished.
* @return {void} Nothing. */
remoting.HostPlugin.prototype.stopDaemon = function(callback) {};
/** @param {function(string):void} callback Callback to be called with the
* JSON-encoded list of paired clients.
* @return {void} Nothing.
*/
remoting.HostPlugin.prototype.getPairedClients = function(callback) {};
/** @param {function(boolean):void} callback Callback to be called when
* finished.
* @return {void} Nothing.
*/
remoting.HostPlugin.prototype.clearPairedClients = function(callback) {};
/** @param {string} client Client id of the pairing to be deleted.
* @param {function(boolean):void} callback Callback to be called when
* finished.
* @return {void} Nothing.
*/
remoting.HostPlugin.prototype.deletePairedClient = function(
client, callback) {};
/** @type {number} */ remoting.HostPlugin.prototype.state;
/** @type {number} */ remoting.HostPlugin.prototype.STARTING;
/** @type {number} */ remoting.HostPlugin.prototype.REQUESTED_ACCESS_CODE;
/** @type {number} */ remoting.HostPlugin.prototype.RECEIVED_ACCESS_CODE;
/** @type {number} */ remoting.HostPlugin.prototype.CONNECTED;
/** @type {number} */ remoting.HostPlugin.prototype.DISCONNECTED;
/** @type {number} */ remoting.HostPlugin.prototype.DISCONNECTING;
/** @type {number} */ remoting.HostPlugin.prototype.ERROR;
/** @type {string} */ remoting.HostPlugin.prototype.accessCode;
/** @type {number} */ remoting.HostPlugin.prototype.accessCodeLifetime;
/** @type {string} */ remoting.HostPlugin.prototype.client;
/** @type {remoting.HostController.State} */
remoting.HostPlugin.prototype.daemonState;
/** @type {function(boolean):void} */
remoting.HostPlugin.prototype.onNatTraversalPolicyChanged;
/** @type {string} */ remoting.HostPlugin.prototype.xmppServerAddress;
/** @type {boolean} */ remoting.HostPlugin.prototype.xmppServerUseTls;
/** @type {string} */ remoting.HostPlugin.prototype.directoryBotJid;
/** @type {string} */ remoting.HostPlugin.prototype.supportedFeatures;