typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
236 lines (209 loc) • 7.58 kB
TypeScript
// Type definitions for Greasemonkey
// Project: http://www.greasespot.net/
// Definitions by: Kota Saito <https://github.com/kotas>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
// This definition is based on the API reference of Greasemonkey.
// http://wiki.greasespot.net/Greasemonkey_Manual:API
////////////////
// Global variable
////////////////
/**
* Window object of the content page where the user script is running on.
* @see {@link http://wiki.greasespot.net/UnsafeWindow}
*/
declare var unsafeWindow: Window;
/**
* Meta data about the running user script.
* @see {@link http://wiki.greasespot.net/GM_info}
*/
declare var GM_info: {
script: {
description: string;
excludes: string[];
includes: string[];
matches: string[];
name: string;
namespace: string;
resources: Object;
"run-at": string;
unwrap: boolean;
version: string;
};
scriptMetaStr: string;
scriptWillUpdate: boolean;
version: string;
};
////////////////
// Values
////////////////
/**
* Deletes an existing name / value pair from the script storage.
* @param name a name of the pair to delete.
* @see {@link http://wiki.greasespot.net/GM_deleteValue}
*/
declare function GM_deleteValue(name: string): void;
/**
* Retrieves a value from the script storage.
* @param name a name to retrieve.
* @param defaultValue a value to be returned when the name does not exist.
* @returns a retrieved value, or passed default value, or undefined.
* @see {@link http://wiki.greasespot.net/GM_getValue}
*/
declare function GM_getValue(name: string, defaultValue?: any): any;
declare function GM_getValue(name: string, defaultValue?: string): string;
declare function GM_getValue(name: string, defaultValue?: number): number;
declare function GM_getValue(name: string, defaultValue?: boolean): boolean;
/**
* Retrieves an array of names stored in the script storage.
* @returns an array of names in the storage.
* @see {@link http://wiki.greasespot.net/GM_listValues}
*/
declare function GM_listValues(): string[];
/**
* Stores a name / value pair to the script storage.
* @param name a name of the pair.
* @param value a value to be stored.
* @see {@link http://wiki.greasespot.net/GM_setValue}
*/
declare function GM_setValue(name: string, value: string): void;
declare function GM_setValue(name: string, value: boolean): void;
declare function GM_setValue(name: string, value: number): void;
////////////////
// Resources
////////////////
/**
* Gets a content of a resouce defined by {@link http://wiki.greasespot.net/Metadata_Block#.40resource|@resource}.
* @param resourceName a name of the resource to get.
* @returns the content of the resource.
* @see {@link http://wiki.greasespot.net/GM_getResourceText}
*/
declare function GM_getResourceText(resourceName: string): string;
/**
* Gets a URL of a resource defined by {@link http://wiki.greasespot.net/Metadata_Block#.40resource|@resource}.
* @param resourceName a name of the resource.
* @returns a URL that returns the content of the resource.
* @see {@link http://wiki.greasespot.net/GM_getResourceURL}
*/
declare function GM_getResourceURL(resourceName: string): string;
////////////////
// Utilities
////////////////
/**
* Adds CSS to the content page.
* @param css a CSS string. It can have multiple style definitions.
* @see {@link http://wiki.greasespot.net/GM_addStyle}
*/
declare function GM_addStyle(css: string): void;
/**
* Writes a message as a log to the console with the script identifier.
* @param message a message to be written.
* @see {@link http://wiki.greasespot.net/GM_log}
*/
declare function GM_log(message: any): void;
/**
* Opens a URL in a new tab.
* @param url a URL to open.
* @returns window object of the opened tab.
* @see {@link http://wiki.greasespot.net/GM_openInTab}
*/
declare function GM_openInTab(url: string): Window;
/**
* Registers an item as a submenu of User Script Commands.
* @param caption a caption of the menu item.
* @param commandFunc a function to be invoked when the item has been selected.
* @param accessKey a single character that can be used to select the item by keyboard.
* It should be a letter in the caption.
* @see {@link http://wiki.greasespot.net/GM_registerMenuCommand}
*/
declare function GM_registerMenuCommand(caption: string, commandFunc: Function, accessKey?: string): void;
/**
* Sets a text to the clipboard of the opeating system.
* @param text a text to be set to the clipboard.
* @see {@link http://wiki.greasespot.net/GM_setClipboard}
*/
declare function GM_setClipboard(text: string): void;
////////////////
// XMLHttpRequest
////////////////
/**
* Request options for {@link GM_xmlhttpRequest}.
* @see {@link http://wiki.greasespot.net/GM_xmlhttpRequest#Arguments}
*/
interface GMXMLHttpRequestOptions {
binary?: boolean;
context?: any;
data?: string;
headers?: Object;
method: string;
onabort?: (response: GMXMLHttpRequestResponse) => any;
onerror?: (response: GMXMLHttpRequestResponse) => any;
onload?: (response: GMXMLHttpRequestResponse) => any;
onprogress?: (response: GMXMLHttpRequestProgressResponse) => any;
onreadystatechange?: (response: GMXMLHttpRequestResponse) => any;
ontimeout?: (response: GMXMLHttpRequestResponse) => any;
overrideMimeType?: string;
password?: string;
synchronous?: boolean;
timeout?: number;
upload?: {
onabort?: (response: GMXMLHttpRequestResponse) => any;
onerror?: (response: GMXMLHttpRequestResponse) => any;
onload?: (response: GMXMLHttpRequestResponse) => any;
onprogress?: (response: GMXMLHttpRequestProgressResponse) => any;
};
url: string;
user?: string;
}
/**
* Response object for general events of {@link GM_xmlhttpRequest}.
* @see {@link http://wiki.greasespot.net/GM_xmlhttpRequest#Response_Object}
*/
interface GMXMLHttpRequestResponse {
readyState: number;
responseHeaders: string;
responseText: string;
status: number;
statusText: string;
context: any;
finalUrl: string;
}
/**
* Response object for onprogress event of {@link GM_xmlhttpRequest}.
*/
interface GMXMLHttpRequestProgressResponse extends GMXMLHttpRequestResponse {
lengthComputable: boolean;
loaded: number;
total: number;
}
/**
* Returned object by {@link GM_xmlhttpRequest} in asynchronous mode.
*/
interface GMXMLHttpRequestAsyncResult {
abort(): void;
}
/**
* Returned object by {@link GM_xmlhttpRequest} in synchronouse mode.
*/
interface GMXMLHttpRequestSyncResult {
abort(): void;
finalUrl: string;
readyState: number;
responseHeaders: string;
responseText: string;
status: number;
statusText: string;
}
/**
* Returned object by {@link GM_xmlhttpRequest}.
* @see {@link http://wiki.greasespot.net/GM_xmlhttpRequest#Returns}
*/
interface GMXMLHttpRequestResult extends GMXMLHttpRequestAsyncResult, GMXMLHttpRequestSyncResult {
}
/**
* Sends a HTTP request to a URL.
* @param options options and callbacks for HTTP request.
* @returns an object which can abort the request.
* If the request is sent in the synchronous mode, it also contains the response information.
* @see {@link http://wiki.greasespot.net/GM_setClipboard}
*/
declare function GM_xmlhttpRequest(options: GMXMLHttpRequestOptions): GMXMLHttpRequestResult;