blob: 1ca953473ee02be6198bdd1eb5d2d565ef0430c1 [file] [log] [blame]
// Copyright 2014 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.
/**
* @fileoverview Externs for the braille IME.
* @externs
*/
/**
* @const
*/
chrome.input = {};
/** @const */
chrome.input.ime = {};
/**
* @constructor
*/
function ChromeInputImeOnKeyEventEvent() {}
/**
* @param {function(string, !ChromeKeyboardEvent): (boolean|undefined)} callback
* @param {Array.<string>=} opt_extraInfoSpec
*/
ChromeInputImeOnKeyEventEvent.prototype.addListener =
function(callback, opt_extraInfoSpec) {};
/**
* @param {!Object.<string,(string|number)>} parameters An object with
* 'contextID' (number) and 'text' (string) keys.
* @param {function(boolean): void=} opt_callback Callback function.
*/
chrome.input.ime.commitText = function(parameters, opt_callback) {};
/**
* @param {!Object.<string,(string|number)>} parameters An object with
* 'contextID' (number) and 'text' (string) keys.
* @param {function(boolean): void=} opt_callback Callback function.
*/
chrome.input.ime.deleteSurroundingText = function(parameters, opt_callback) {};
/**
* @param {{engineID: string, items: Array.<chrome.input.ime.MenuItem>}}
* parameters
* @param {function()=} opt_callback
*/
chrome.input.ime.setMenuItems = function(parameters, opt_callback) {};
/** @type {!ChromeEvent} */
chrome.input.ime.onActivate;
/** @type {!ChromeEvent} */
chrome.input.ime.onBlur;
/** @type {!ChromeEvent} */
chrome.input.ime.onDeactivated;
/** @type {!ChromeEvent} */
chrome.input.ime.onFocus;
/** @type {!ChromeEvent} */
chrome.input.ime.onInputContextUpdate;
/** @type {!ChromeInputImeOnKeyEventEvent} */
chrome.input.ime.onKeyEvent;
/** @type {!ChromeEvent} */
chrome.input.ime.onMenuItemActivated;
/** @type {!ChromeEvent} */
chrome.input.ime.onReset;
/**
* @const
*/
chrome.runtime = {};
/** @type {!Object|undefined} */
chrome.runtime.lastError = {};
/**
* @param {string|!Object.<string>=} opt_extensionIdOrConnectInfo Either the
* extensionId to connect to, in which case connectInfo params can be
* passed in the next optional argument, or the connectInfo params.
* @param {!Object.<string>=} opt_connectInfo The connectInfo object,
* if arg1 was the extensionId to connect to.
* @return {!Port} New port.
*/
chrome.runtime.connect = function(
opt_extensionIdOrConnectInfo, opt_connectInfo) {};
/**
* @constructor
*/
function Port() {}
/** @type {ChromeEvent} */
Port.prototype.onDisconnect;
/** @type {ChromeEvent} */
Port.prototype.onMessage;
/**
* @param {Object.<string>} obj Message object.
*/
Port.prototype.postMessage = function(obj) {};
/**
* Note: as of 2012-04-12, this function is no longer documented on
* the public web pages, but there are still existing usages.
*/
Port.prototype.disconnect = function() {};
/**
* @constructor
*/
function ChromeEvent() {}
/** @param {Function} callback */
ChromeEvent.prototype.addListener = function(callback) {};
/**
* @constructor
*/
function ChromeKeyboardEvent() {}
/** @type {string} */
ChromeKeyboardEvent.prototype.type;
/** @type {string} */
ChromeKeyboardEvent.prototype.code;
/** @type {boolean} */
ChromeKeyboardEvent.prototype.altKey;
/** @type {boolean} */
ChromeKeyboardEvent.prototype.ctrlKey;
/** @type {boolean} */
ChromeKeyboardEvent.prototype.shiftKey;
/** @type {boolean} */
ChromeKeyboardEvent.prototype.capsLock;
/**
* @constructor
*/
function InputContext() {}
/** @type {number} */
InputContext.prototype.contextID;
/** @type {string} */
InputContext.prototype.type;
/**
* @typedef {{
* id: string,
* label: (string|undefined),
* style: string,
* visible: (boolean|undefined),
* checked: (boolean|undefined),
* enabled: (boolean|undefined)
* }}
*/
chrome.input.ime.MenuItem;
/**
* @type {Object}
*/
var localStorage;