UNPKG

typescript-closure-tools

Version:

Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files

1,602 lines (1,343 loc) 75.5 kB
// Type definitions for Chrome extension development. // Project: http://developer.chrome.com/extensions/ // Definitions by: Matthew Kimber <https://github.com/matthewkimber> and otiai10 <https://github.com/otiai10> // Definitions: https://github.com/borisyankov/DefinitelyTyped //////////////////// // Alarms //////////////////// declare module chrome.alarms { interface AlarmCreateInfo { delayInMinutes?: number; periodInMinutes?: number; when?: number; } interface Alarm { periodInMinutes?: number; scheduledTime: number; name: string; } interface AlarmEvent extends chrome.events.Event { addListener(callback: (alarm: Alarm) => void) : void; } export function create(alarmInfo: AlarmCreateInfo): void; export function create(name: string, alarmInfo: AlarmCreateInfo): void; export function getAll(callback: (alarms: Alarm[]) => void): void; export function clearAll(): void; export function clear(name?: string): void; export function get(callback: (alarm: Alarm) => void): void; export function get(name: string, callback: (alarm: Alarm) => void): void; var onAlarm: AlarmEvent; } //////////////////// // Bookmarks //////////////////// declare module chrome.bookmarks { interface BookmarkTreeNode { index?: number; dateAdded?: number; title: string; url?: string; dateGroupModified?: number; id: string; parentId?: string; children?: BookmarkTreeNode[]; } interface BookmarkRemoveInfo { index: number; parentId: string; } interface BookmarkMoveInfo { index: number; oldIndex: number; parentId: string; oldParentId: string; } interface BookmarkChangeInfo { url?: string; title: string; } interface BookmarkReorderInfo { childIds: string[]; } interface BookmarkRemovedEvent extends chrome.events.Event { addListener(callback: (id: string, removeInfo: BookmarkRemoveInfo) => void): void; } interface BookmarkImportEndedEvent extends chrome.events.Event { addListener(callback: Function): void; } interface BookmarkMovedEvent extends chrome.events.Event { addListener(callback: (id: string, moveInfo: BookmarkMoveInfo) => void): void; } interface BookmarkImportBeganEvent extends chrome.events.Event { addListener(callback: Function): void; } interface BookmarkChangedEvent extends chrome.events.Event { addListener(callback: (id: string, changeInfo: BookmarkChangeInfo) => void): void; } interface BookmarkCreatedEvent extends chrome.events.Event { addListener(callback: (id: string, bookmark: BookmarkTreeNode) => void): void; } interface BookmarkChildrenReordered extends chrome.events.Event { addListener(callback: (id: string, reorderInfo: BookmarkReorderInfo) => void): void; } var MAX_WRITE_OPERATIONS_PER_HOUR: number; var MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE: number; export function search(query: string, callback: (results: BookmarkTreeNode[]) => void): void; export function getTree(callback: (results: BookmarkTreeNode[]) => void): void; export function getRecent(numberOfItems: number, callback: (results: BookmarkTreeNode[]) => void): void; export function get(id: string, callback: (results: BookmarkTreeNode[]) => void): void; export function get(idList: string[], callback: (results: BookmarkTreeNode[]) => void): void; export function create(bookmark: Object, callback?: (result: BookmarkTreeNode) => void): void; export function move(id: string, destination: Object, callback?: (result: BookmarkTreeNode) => void): void; export function update(id: string, changes: Object, callback?: (result: BookmarkTreeNode) => void): void; export function remove(id: string, callback?: Function): void; export function getChildren(id: string, callback: (results: BookmarkTreeNode[]) => void): void; export function getSubTree(id: string, callback: (results: BookmarkTreeNode[]) => void): void; export function removeTree(id: string, callback?: Function): void; var onRemoved: BookmarkRemovedEvent; var onImportEnded: BookmarkImportEndedEvent; var onImportBegan: BookmarkImportBeganEvent; var onChanged: BookmarkChangedEvent; var onCreated: BookmarkCreatedEvent; var onChildrenReordered: BookmarkChildrenReordered; } //////////////////// // Browser Action //////////////////// declare module chrome.browserAction { interface BadgeBackgroundColorDetails { color: any; tabId?: number; } interface BadgeTextDetails { text: string; tabId?: number; } interface TitleDetails { title: string; tabId?: number; } interface TabDetails { tabId?: number; } interface TabIconDetails { path?: any; tabId?: number; imageData?: ImageData; } interface PopupDetails { tabId?: number; popup: string; } interface BrowserClickedEvent extends chrome.events.Event { addListener(callback: (tab: chrome.tabs.Tab) => void): void; } export function enable(tabId?: number): void; export function setBadgeBackgroundColor(details: BadgeBackgroundColorDetails): void; export function setBadgeText(details: BadgeTextDetails): void; export function setTitle(details: TitleDetails): void; export function getBadgeText(details: TabDetails, callback: (result: string) => void): void; export function setPopup(details: PopupDetails): void; export function disable(tabId?: number): void; export function getTitle(details: TabDetails, callback: (result: string) => void): void; export function getBadgeBackgroundColor(details: TabDetails, callback: (result: number[]) => void): void; export function getPopup(details: TabDetails, callback: (result: string) => void): void; export function setIcon(details: TabIconDetails, callback?: Function): void; var onClicked: BrowserClickedEvent; } //////////////////// // Browsing Data //////////////////// declare module chrome.browsingData { interface OriginTypes { protectedWeb?: boolean; extension?: boolean; unprotectedWeb?: boolean; } interface RemovalOptions { originTypes?: OriginTypes; since?: number; } interface DataToRemove { webSQL?: boolean; indexedDB?: boolean; cookies?: boolean; passwords?: boolean; serverBoundCertificates?: boolean; downloads?: boolean; cache?: boolean; appcache?: boolean; fileSystems?: boolean; pluginData?: boolean; localStorage?: boolean; formData?: boolean; history?: boolean; } export function removePluginData(options: RemovalOptions, callback?: Function): void; export function removeFormData(options: RemovalOptions, callback?: Function): void; export function removeFileSystems(options: RemovalOptions, callback?: Function): void; export function remove(options: RemovalOptions, dataToRemove: DataToRemove, callback?: Function): void; export function removePasswords(options: RemovalOptions, callback?: Function): void; export function removeCookies(options: RemovalOptions, callback?: Function): void; export function removeWebSQL(options: RemovalOptions, callback?: Function): void; export function removeAppcache(options: RemovalOptions, callback?: Function): void; export function removeDownloads(options: RemovalOptions, callback?: Function): void; export function removeLocalStorage(options: RemovalOptions, callback?: Function): void; export function removeCache(options: RemovalOptions, callback?: Function): void; export function removeHistory(options: RemovalOptions, callback?: Function): void; export function removeIndexedDB(options: RemovalOptions, callback?: Function): void; } //////////////////// // Commands //////////////////// declare module chrome.commands { interface CommandEvent extends chrome.events.Event { addListener(callback: (command: string) => void): void; } var onCommand: CommandEvent; } //////////////////// // Content Settings //////////////////// declare module chrome.contentSettings { interface ClearDetails { scope?: string; } interface SetDetails { resourceIdentifier?: ResourceIdentifier; setting: any; secondaryPattern?: string; scope?: string; primaryPattern: string; } interface GetDetails { secondaryUrl?: string; resourceIdentifier?: ResourceIdentifier; incognito?: boolean; primaryUrl: string; } interface ReturnedDetails { setting: any; } interface ContentSetting { clear(details: ClearDetails, callback?: Function): void; set(details: SetDetails, callback?: Function): void; getResourceIdentifiers(callback: (resourceIdentifiers: ResourceIdentifier[]) => void): void; get(details: GetDetails, callback: (details: ReturnedDetails) => void): void; } interface ResourceIdentifier { id: string; description?: string; } var cookies: ContentSetting; var popups: ContentSetting; var javascript: ContentSetting; var notifications: ContentSetting; var plugins: ContentSetting; var images: ContentSetting; } //////////////////// // Context Menus //////////////////// declare module chrome.contextMenus { interface OnClickData { selectionText?: string; checked?: boolean; menuItemId: any; frameUrl?: string; editable: boolean; mediaType?: string; wasChecked?: boolean; pageUrl: string; linkUrl?: string; parentMenuItemId?: any; } interface CreateProperties { documentUrlPatterns?: string[]; checked?: boolean; title?: string; contexts?: string[]; enabled?: boolean; targetUrlPatterns?: string[]; onclick?: (info: OnClickData, tab: chrome.tabs.Tab) => void; parentId?: any; type?: string; id?: string; } interface UpdateProperties { documentUrlPatterns?: string[]; checked?: boolean; title?: string; contexts?: string[]; enabled?: boolean; targetUrlPatterns?: string[]; onclick?: Function; parentId?: any; type?: string; } interface MenuClickedEvent extends chrome.events.Event { addListener(callback: (info: OnClickData, tab?: chrome.tabs.Tab) => void): void; } export function removeAll(callback?: Function): void; export function create(createProperties: CreateProperties, callback?: Function): void; export function update(id: any, updateProperties: UpdateProperties, callback?: Function): void; export function remove(menuItemId: any, callback?: Function): void; var onClicked: MenuClickedEvent; } //////////////////// // Cookies //////////////////// declare module chrome.cookies { interface Cookie { domain: string; name: string; storeId: string; value: string; session: boolean; hostOnly: boolean; expirationDate?: number; path: string; httpOnly: boolean; secure: boolean; } interface CookieStore { id: string; tabIds: number[]; } interface GetAllDetails { domain?: string; name?: string; url?: string; storeId?: string; session?: boolean; path?: string; secure?: boolean; } interface SetDetails { domain?: string; name?: string; url: string; storeId?: string; value?: string; expirationDate?: number; path?: string; httpOnly?: boolean; secure?: boolean; } interface Details { name: string; url: string; storeId?: string; } interface CookieChangeInfo { cookie: Cookie; removed: boolean; cause: string; } interface CookieChangedEvent extends chrome.events.Event { addListener(callback: (changeInfo: CookieChangeInfo) => void): void; } export function getAllCookieStores(callback: (cookieStores: CookieStore[]) => void): void; export function getAll(details: GetAllDetails, callback: (cookies: Cookie) => void): void; export function set(details: SetDetails, callback?: (cookie?: Cookie) => void): void; export function remove(details: Details, callback?: (details: Details) => void): void; export function get(details: Details, callback: (cookie?: Cookie) => void): void; var onChanged: CookieChangedEvent; } //////////////////// // Debugger //////////////////// declare module "chrome.debugger" { interface Debuggee { tabId: number; } interface DebuggerDetachedEvent extends chrome.events.Event { addListener(callback: (source: Debuggee) => void): void; } interface DebuggerEventEvent extends chrome.events.Event { addListener(callback: (source: Debuggee, method: string, params?: Object) => void): void; } export function attach(target: Debuggee, requiredVersion: string, callback?: Function): void; export function detach(target: Debuggee, callback?: Function): void; export function sendCommand(target: Debuggee, method: string, commandParams?: Object, callback?: (result: Object) => void): void; var onDetach: DebuggerDetachedEvent; var onEvent: DebuggerEventEvent; } //////////////////// // Declarative Web Request //////////////////// declare module chrome.declarativeWebRequest { interface HeaderFilter { nameEquals?: string; valueContains?: any; nameSuffix?: string; valueSuffix?: string; valuePrefix?: string; nameContains?: any; valueEquals?: string; namePrefix?: string; } interface AddResponseHeader { name: string; value: string; } interface RemoveResponseCookie { filter: ResponseCookie; } interface RemoveResponseHeader { name: string; value?: string; } interface RequestMatcher { contentType?: string[]; url?: chrome.events.UrlFilter; excludeContentType?: string[]; excludeResponseHeader?: HeaderFilter[]; resourceType?: string; responseHeaders?: HeaderFilter[]; } interface IgnoreRules { lowerPriorityThan: number; } interface RedirectToEmptyDocument {} interface RedirectRequest { redirectUrl: string; } interface ResponseCookie { domain?: string; name?: string; expires?: string; maxAge?: number; value?: string; path?: string; httpOnly?: string; secure?: string; } interface AddResponseCookie { cookie: ResponseCookie; } interface EditResponseCookie { filter: ResponseCookie; modification: ResponseCookie; } interface CancelRequest {} interface RemoveRequestHeader { name: string; } interface EditRequestCookie { filter: RequestCookie; modification: RequestCookie; } interface SetRequestHeader { name: string; value: string; } interface RequestCookie { name?: string; value?: string; } interface RedirectByRegEx { to: string; from: string; } interface RedirectToTransparentImage {} interface AddRequestCookie { cookie: RequestCookie; } interface RemoveRequestCookie { filter: RequestCookie; } interface RequestedEvent extends chrome.events.Event { addListener(callback: Function): void; } var onRequest: RequestedEvent; } //////////////////// // Dev Tools - Inspected Window //////////////////// declare module chrome.devtools.inspectedWindow { interface Resource { url: string; getContent(callback: (content: string, encoding: string) => void): void; setContent(content: string, commit: boolean, callback?: (error: Object) => void): void; } interface ReloadOptions { userAgent?: string; ignoreCache?: boolean; injectedScript?: boolean; } interface ResourceAddedEvent extends chrome.events.Event { addListener(callback: (resource: Resource) => void): void; } interface ResourceContentCommittedEvent extends chrome.events.Event { addListener(callback: (resource: Resource, content: string) => void): void; } var tabId: number; export function reload(reloadOptions: ReloadOptions): void; export function eval(expression: string, callback?: (result: Object, isException: boolean) => void): void; export function getResources(callback: (resources: Resource[]) => void): void; var onResourceAdded: ResourceAddedEvent; var onResourceContentCommitted: ResourceContentCommittedEvent; } //////////////////// // Dev Tools - Network //////////////////// declare module chrome.devtools.network { interface Request { getContent(callback: (content: string, encoding: string) => void): void; } interface RequestFinishedEvent extends chrome.events.Event { addListener(callback: (request: Request) => void): void; } interface NavigatedEvent extends chrome.events.Event { addListener(callback: (url: string) => void): void; } export function getHAR(callback: (harLog: Object) => void): void; var onRequestFinished: RequestFinishedEvent; var onNavigated: NavigatedEvent; } //////////////////// // Dev Tools - Panels //////////////////// declare module chrome.devtools.panels { interface PanelShownEvent extends chrome.events.Event { addListener(callback: (window: chrome.windows.Window) => void): void; } interface PanelHiddenEvent extends chrome.events.Event { addListener(callback: Function): void; } interface PanelSearchEvent extends chrome.events.Event { addListener(callback: (action: string, queryString?: string) => void): void; } interface ExtensionPanel { createStatusButton(iconPath: string, tooltipText: string, disabled: boolean): Button; onShown: PanelShownEvent; onHidden: PanelHiddenEvent; onSearch: PanelSearchEvent; } interface ButtonClickedEvent extends chrome.events.Event { addListener(callback: Function): void; } interface Button { update(iconPath?: string, tooltipText?: string, disabled?: boolean): void; onClicked: ButtonClickedEvent; } interface SelectionChangedEvent extends chrome.events.Event { addListener(callback: Function): void; } interface ElementsPanel { createSidebarPane(title: string, callback?: (result: ExtensionSidebarPane) => void): void; onSelectionChanged: SelectionChangedEvent; } interface ExtensionSidebarPaneShownEvent extends chrome.events.Event { addListener(callback: (window: chrome.windows.Window) => void): void; } interface ExtensionSidebarPaneHiddenEvent extends chrome.events.Event { addListener(callback: Function): void; } interface ExtensionSidebarPane { setHeight(height: string): void; setExpression(expression: string, rootTitle?: string, callback?: Function): void; setObject(jsonObject: string, rootTitle?: string, callback?: Function): void; setPage(path: string): void; onShown: ExtensionSidebarPaneShownEvent; onHidden: ExtensionSidebarPaneHiddenEvent; } var elements: ElementsPanel; export function create(title: string, iconPath: string, pagePath: string, callback?: (panel: ExtensionPanel) => void): void; export function setOpenResourceHandler(callback: (resource: chrome.devtools.inspectedWindow.Resource) => void): void; } //////////////////// // Dev Tools - Downloads //////////////////// declare module chrome.downloads { interface HeaderNameValuePair { name: string; value: string; } interface DownloadOptions { body?: string; saveAs?: boolean; url: string; filename?: string; headers?: HeaderNameValuePair[]; method?: string; } interface DownloadDelta { danger?: DownloadStringDiff; url?: DownloadStringDiff; totalBytes?: DownloadStringDiff; dangerAccepted?: DownloadBooleanDiff; filename?: DownloadStringDiff; paused?: DownloadBooleanDiff; state?: DownloadStringDiff; mime?: DownloadStringDiff; fileSize?: DownloadLongDiff; startTime?: DownloadLongDiff; error?: DownloadLongDiff; endTime?: DownloadLongDiff; id: number; } interface DownloadBooleanDiff { current?: boolean; previous?: boolean; } interface DownloadLongDiff { current?: number; previous?: number; } interface DownloadStringDiff { current?: string; previous?: string; } interface DownloadItem { bytesReceived: number; danger: string; url: string; totalBytes: number; dangerAccepted?: boolean; filename: string; paused: boolean; state: string; mime: string; fileSize: number; startTime: number; error?: number; endTime?: number; id: number; incognito: boolean; } interface GetFileIconOptions { size?: number; } interface DownloadQuery { orderBy?: string; urlRegex?: string; endedBefore?: number; totalBytesGreater?: number; danger?: string; totalBytes?: number; paused?: boolean; filenameRegex?: string; query?: string; totalBytesLess?: number; id?: number; bytesReceived?: number; endedAfter?: number; filename?: string; state?: string; startedAfter?: number; dangerAccepted?: boolean; mime?: string; fileSize?: number; startTime?: number; url?: string; startedBefore?: number; limit?: number; error?: number; endTime?: number; } interface DownloadChangedEvent extends chrome.events.Event { addListener(callback: (downloadDelta: DownloadDelta) => void): void; } interface DownloadCreatedEvent extends chrome.events.Event { addListener(callback: (downloadItem: DownloadItem) => void): void; } interface DownloadErasedEvent extends chrome.events.Event { addListener(callback: (downloadId: number) => void): void; } export function search(query: DownloadQuery, callback: (results: DownloadItem[]) => void): void; export function pause(downloadId: number, callback?: Function): void; export function getFileIcon(downloadId: number, callback: (iconURL: string) => void): void; export function getFileIcon(downloadId: number, options: GetFileIconOptions, callback: (iconURL: string) => void): void; export function resume(downloadId: number, callback?: Function): void; export function cancel(downloadId: number, callback?: Function): void; export function download(options: DownloadOptions, callback?: (downloadId: number) => void): void; export function open(downloadId: number): void; export function show(downloadId: number): void; export function showDefaultFolder(): void; export function erase(query: DownloadQuery, callback: (results: DownloadItem[]) => void): void; export function removeFile(downloadId: number, callback: () => void): void; export function acceptDanger(downloadId: number, callback: () => void): void; export function drag(downloadId: number): void; export function setShelfEnabled(enabled: boolean): void; var onChanged: DownloadChangedEvent; var onCreated: DownloadCreatedEvent; var onErased: DownloadErasedEvent; } //////////////////// // Events //////////////////// declare module chrome.events { interface UrlFilter { schemes?: string[]; urlMatches?: string; pathContains?: string; hostSuffix?: string; hostPrefix?: string; hostContains?: string; urlContains?: string; querySuffix?: string; urlPrefix?: string; hostEquals?: string; urlEquals?: string; queryContains?: string; pathPrefix?: string; pathEquals?: string; pathSuffix?: string; queryEquals?: string; queryPrefix?: string; urlSuffix?: string; ports?: any[]; } interface Event { addListener(callback: Function): void; getRules(callback: (rules: Rule[]) => void): void; getRules(ruleIdentifiers: string[], callback: (rules: Rule[]) => void): void; hasListener(callback: Function): void; removeRules(ruleIdentifiers?: string[], callback?: Function): void; addRules(rules: Rule[], callback?: (rules: Rule[]) => void): void; removeListener(callback: Function): void; hasListeners(): boolean; } interface Rule { priority?: number; conditions: any[]; id?: string; actions: any[]; } } //////////////////// // Extension //////////////////// declare module chrome.extension { interface FetchProperties { windowId?: number; type?: string; } var inIncognitoContext: boolean; var lastError: Object; export function getBackgroundPage(): Window; export function getURL(path: string): string; export function setUpdateUrlData(data: string): void; export function getViews(fetchProperties?: FetchProperties): Window[]; export function isAllowedFileSchemeAccess(callback: (isAllowedAccess: boolean) => void): void; export function isAllowedIncognitoAccess(callback: (isAllowedAccess: boolean) => void): void; } //////////////////// // File Browser Handler //////////////////// declare module chrome.fileBrowserHandler { interface SelectionParams { allowedFileExtensions?: string[]; suggestedName: string; } interface SelectionResult { entry?: Object; success: boolean; } interface FileHandlerExecuteEventDetails { tab_id?: number; entries: any[]; selectFile(selectionParams: SelectionParams, callback:(result: SelectionResult) => void): void; } interface FileBrowserHandlerExecuteEvent extends chrome.events.Event { addListener(callback: (id: string, details: FileHandlerExecuteEventDetails) => void): void; } var onExecute: FileBrowserHandlerExecuteEvent; } //////////////////// // Font Settings //////////////////// declare module chrome.fontSettings { interface FontName { displayName: string; fontId: string; } interface DefaultFontSizeDetails { pixelSize: number; } interface FontDetails { genericFamily: string; script?: string; } interface FullFontDetails { genericFamily: string; levelOfControl: string; script?: string; fontId: string; } interface FontDetailsResult { levelOfControl: string; fontId: string; } interface FontSizeDetails { pixelSize: number; levelOfControl: string; } interface SetFontSizeDetails { pixelSize: number; } interface SetFontDetails { genericFamily: string; script?: string; fontId: string; } interface DefaultFixedFontSizeChangedEvent extends chrome.events.Event { addListener(callback: (details: FontSizeDetails) => void): void; } interface DefaultFontSizeChangedEvent extends chrome.events.Event { addListener(callback: (details: FontSizeDetails) => void): void; } interface MinimumFontSizeChangedEvent extends chrome.events.Event { addListener(callback: (details: FontSizeDetails) => void): void; } interface FontChangedEvent extends chrome.events.Event { addListener(callback: (details: FullFontDetails) => void): void; } export function setDefaultFontSize(details: DefaultFontSizeDetails, callback?: Function): void; export function getFont(details: FontDetails, callback?: (details: FontDetailsResult) => void): void; export function getDefaultFontSize(details?: FontSizeDetails, callback?: (options: FontSizeDetails) => void): void; export function getMinimumFontSize(details?: FontSizeDetails, callback?: (options: FontSizeDetails) => void): void; export function setMinimumFontSize(details: SetFontSizeDetails, callback?: Function): void; export function getDefaultFixedFontSize(details?: Object, callback?: (details: FontSizeDetails) => void): void; export function clearDefaultFontSize(details?: Object, callback?: Function): void; export function setDefaultFixedFontSize(details: SetFontSizeDetails, callback?: Function): void; export function clearFont(details: FontDetails, callback?: Function): void; export function setFont(details: SetFontDetails, callback?: Function): void; export function clearMinimumFontSize(details?: Object, callback?: Function): void; export function getFontList(callback: (results: FontName[]) => void): void; export function clearDefaultFixedFontSize(details: Object, callback?: Function): void; var onDefaultFixedFontSizeChanged: DefaultFixedFontSizeChangedEvent; var onDefaultFontSizeChanged: DefaultFontSizeChangedEvent; var onMinimumFontSizeChanged: MinimumFontSizeChangedEvent; var onFontChanged: FontChangedEvent; } //////////////////// // History //////////////////// declare module chrome.history { interface VisitItem { transition: string; visitTime?: number; visitId: string; referringVisitId: string; id: string; } interface HistoryItem { typedCount?: number; title?: string; url?: string; lastVisitTime?: number; visitCount?: number; id: string; } interface HistoryQuery { text: string; maxResults?: number; startTime?: number; endTime?: number; } interface Url { url: string; } interface Range { endTime: number; startTime: number; } interface RemovedResult { allHistory: boolean; urls?: string[]; } interface HistoryVisitedEvent extends chrome.events.Event { addListener(callback: (result: HistoryItem) => void): void; } interface HistoryVisitRemovedEvent extends chrome.events.Event { addListener(callback: (removed: RemovedResult) => void): void; } export function search(query: HistoryQuery, callback: (results: HistoryItem[]) => void): void; export function addUrl(details: Url, callback?: Function): void; export function deleteRange(range: Range, callback: Function): void; export function deleteAll(callback: Function): void; export function getVisits(details: Url, callback: (results: VisitItem[]) => void): void; export function deleteUrl(details: Url, callback?: Function): void; var onVisited: HistoryVisitedEvent; var onVisitRemoved: HistoryVisitRemovedEvent; } //////////////////// // Identity //////////////////// declare module chrome.identity { var getAuthToken: (options:any, cb:(token:{})=>void)=>void; } //////////////////// // Internationalization //////////////////// declare module chrome.i18n { export function getMessage(messageName: string, substitutions?: any): string; export function getAcceptLanguages(callback: (languages: string[]) => void): void; } //////////////////// // Idle //////////////////// declare module chrome.idle { interface IdleStateChangedEvent extends chrome.events.Event { addListener(callback: (newState: string) => void): void; } export function queryState(thresholdSeconds: number, callback: (newState: string) => void): void; var onStateChanged: IdleStateChangedEvent; } //////////////////// // Input - IME //////////////////// declare module chrome.input.ime { interface KeyboardEvent { shiftKey?: boolean; altKey?: boolean; requestId: string; key: string; ctrlKey?: boolean; type: string; } interface InputContext { contextID: number; type: string; } interface ImeParameters { items: Object[]; engineID: string; } interface CommitTextParameters { text: string; contextID: number; } interface CandidatesParameters { contextID: number; candidates: Object[]; } interface CompositionParameters { contextID: number; text: string; segments: Object[]; cursor: number; selectionStart?: number; selectionEnd?: number; } interface MenuItemParameters { items: Object[]; engineId: string; } interface CandidateWindowPropertiesParameters { cursorVisible?: boolean; vertical?: boolean; pageSize?: number; auxiliaryTextVisible?: boolean; auxiliaryText?: string; visible?: boolean; } interface ClearCompositionParameters { contextID: number; } interface CursorPositionParameters { candidateID: number; contextID: number; } interface BlurEvent extends chrome.events.Event { addListener(callback: (contextID: number) => void): void; } interface CandidateClickedEvent extends chrome.events.Event { addListener(callback: (engineID: string, candidateID: number, button: string) => void): void; } interface KeyEventEvent extends chrome.events.Event { addListener(callback: (engineID: string, keyData: KeyboardEvent) => void): void; } interface DeactivatedEvent extends chrome.events.Event { addListener(callback: (engineID: string) => void): void; } interface InputContextUpdateEvent extends chrome.events.Event { addListener(callback: (context: InputContext) => void): void; } interface ActivateEvent extends chrome.events.Event { addListener(callback: (engineID: string) => void): void; } interface FocusEvent extends chrome.events.Event { addListener(callback: (context: InputContext) => void): void; } interface MenuItemActivatedEvent extends chrome.events.Event { addListener(callback: (engineID: string, name: string) => void): void; } export function setMenuItems(parameters: ImeParameters, callback?: Function): void; export function commitText(parameters: CommitTextParameters, callback?: (success: boolean) => void): void; export function setCandidates(parameters: CandidatesParameters, callback?: (success: boolean) => void): void; export function setComposition(parameters: CompositionParameters, callback?: (success: boolean) => void): void; export function updateMenuItems(parameters: MenuItemParameters, callback?: Function): void; export function setCandidateWindowProperties(parameters: CandidateWindowPropertiesParameters, callback?: (success: boolean) => void): void; export function clearComposition(parameters: ClearCompositionParameters, callback?: (success: boolean) => void): void; export function setCursorPosition(parameters: CursorPositionParameters, callback?: (success: boolean) => void): void; var onBlur: BlurEvent; var onCandidateClicked: CandidateClickedEvent; var onKeyEvent: KeyEventEvent; var onDeactivated: DeactivatedEvent; var onInputContextUpdate: InputContextUpdateEvent; var onActivate: ActivateEvent; var onFocus: FocusEvent; var onMenuItemActivated: MenuItemActivatedEvent; } //////////////////// // Management //////////////////// declare module chrome.management { interface ExtensionInfo { disabledReason?: string; appLaunchUrl?: string; description: string; permissions: string[]; icons?: IconInfo[]; hostPermissions: string[]; enabled: boolean; homepageUrl?: string; mayDisable: boolean; installType: string; version: string; id: string; offlineEnabled: boolean; updateUrl?: string; type: string; optionsUrl: string; name: string; } interface IconInfo { url: string; size: number; } interface UninstallOptions { showConfirmDialog?: boolean; } interface ManagementDisabledEvent extends chrome.events.Event { addListener(callback: (info: ExtensionInfo) => void): void; } interface ManagementUninstalledEvent extends chrome.events.Event { addListener(callback: (id: string) => void): void; } interface ManagementInstalledEvent extends chrome.events.Event { addListener(callback: (info: ExtensionInfo) => void): void; } interface ManagementEnabledEvent extends chrome.events.Event { addListener(callback: (info: ExtensionInfo) => void): void; } export function setEnabled(id: string, enabled: boolean, callback?: Function): void; export function getPermissionWarningsById(id: string, callback?: (permissionWarnings: string[]) => void): void; export function get(id: string, callback?: (result: ExtensionInfo) => void): void; export function getAll(callback?: (result: ExtensionInfo[]) => void): void; export function getPermissionWarningsByManifest(manifestStr: string, callback?: (permissionwarnings: string[]) => void): void; export function launchApp(id: string, callback?: Function): void; export function uninstall(id: string, options: UninstallOptions, callback?: Function): void; var onDisabled: ManagementDisabledEvent; var onUninstalled: ManagementUninstalledEvent; var onInstalled: ManagementInstalledEvent; var onEnabled: ManagementEnabledEvent; } //////////////////// // Omnibox //////////////////// declare module chrome.omnibox { interface SuggestResult { content: string; description: string; } interface Suggestion { description: string; } interface OmniboxInputEnteredEvent extends chrome.events.Event { addListener(callback: (text: string) => void): void; } interface OmniboxInputChangedEvent extends chrome.events.Event { addListener(callback: (text: string, suggest: (suggestResults: SuggestResult[]) => void) => void): void; } interface OmniboxInputStartedEvent extends chrome.events.Event { addListener(callback: Function): void; } interface OmniboxInputCancelledEvent extends chrome.events.Event { addListener(callback: Function): void; } export function setDefaultSuggestion(suggestion: Suggestion): void; var onInputEntered: OmniboxInputEnteredEvent; var onInputChanged: OmniboxInputChangedEvent; var onInputStarted: OmniboxInputStartedEvent; var onInputCancelled: OmniboxInputCancelledEvent; } //////////////////// // Page Action //////////////////// declare module chrome.pageAction { interface PageActionClickedEvent extends chrome.events.Event { addListener(callback: (tab: chrome.tabs.Tab) => void): void; } interface TitleDetails { tabId: number; title: string; } interface GetDetails { tabId: number; } interface PopupDetails { tabId: number; popup: string; } interface IconDetails { tabId: number; iconIndex?: number; imageData?: ImageData; path?: any; } export function hide(tabId: number): void; export function show(tabId: number): void; export function setTitle(details: TitleDetails): void; export function setPopup(details: PopupDetails): void; export function getTitle(details: GetDetails, callback: (result: string) => void): void; export function getPopup(details: GetDetails, callback: (result: string) => void): void; export function setIcon(details: IconDetails, callback?: Function): void; var onClicked: PageActionClickedEvent; } //////////////////// // Page Capture //////////////////// declare module chrome.pageCapture { interface SaveDetails { tabId: number; } export function saveAsMHTML(details: SaveDetails, callback: (mhtmlData: any) => void): void; } //////////////////// // Permissions //////////////////// declare module chrome.permissions { interface Permissions { origins?: string[]; permissions?: string[]; } interface PermissionsRemovedEvent { addListener(callback: (permissions: Permissions) => void): void; } interface PermissionsAddedEvent { addListener(callback: (permissions: Permissions) => void): void; } export function contains(permissions: Permissions, callback: (result: boolean) => void): void; export function getAll(callback: (permissions: Permissions) => void): void; export function request(permissions: Permissions, callback?: (granted: boolean) => void): void; export function remove(permissions: Permissions, callback?: (removed: boolean) => void): void; var onRemoved: PermissionsRemovedEvent; var onAdded: PermissionsAddedEvent; } //////////////////// // Privacy //////////////////// declare module chrome.privacy { interface Services { spellingServiceEnabled: chrome.types.ChromeSetting; searchSuggestEnabled: chrome.types.ChromeSetting; instantEnabled: chrome.types.ChromeSetting; alternateErrorPagesEnabled: chrome.types.ChromeSetting; safeBrowsingEnabled: chrome.types.ChromeSetting; autofillEnabled: chrome.types.ChromeSetting; translationServiceEnabled: chrome.types.ChromeSetting; } interface Network { networkPredictionEnabled: chrome.types.ChromeSetting; } interface Websites { thirdPartyCookiesAllowed: chrome.types.ChromeSetting; referrersEnabled: chrome.types.ChromeSetting; hyperlinkAuditingEnabled: chrome.types.ChromeSetting; protectedContentEnabled: chrome.types.ChromeSetting; } var services: Services; var network: Network; var websites: Websites; } //////////////////// // Proxy //////////////////// declare module chrome.proxy { interface PacScript { url?: string; mandatory?: boolean; data?: string; } interface ProxyConfig { rules?: ProxyRules; pacScript?: PacScript; mode: string; } interface ProxyServer { host: string; scheme?: string; port?: number; } interface ProxyRules { proxyForFtp?: ProxyServer; proxyForHttp?: ProxyServer; facllbackProxy?: ProxyServer; singleProxy?: ProxyServer; proxyForHttps?: ProxyServer; bypassList?: string[]; } interface ErrorDetails { details: string; error: string; fatal: boolean; } interface ProxyErrorEvent extends chrome.events.Event { addListener(callback: (details: ErrorDetails) => void): void; } var settings: chrome.types.ChromeSetting; var onProxyError: ProxyErrorEvent; } //////////////////// // Runtime //////////////////// declare module chrome.runtime { var lastError: Object; var id: string; interface ConnectInfo { name?: string; } interface InstalledDetails { reason: string; previousVersion?: string; } interface MessageOptions { includeTlsChannelId?: boolean; } interface MessageSender { id: string; tab?: chrome.tabs.Tab; } interface PlatformInfo { os: string; arch: string; nacl_arch: string; } interface Port { postMessage: Function; sender?: MessageSender; onDisconnect: chrome.events.Event; onMessage: chrome.events.Event; name: string; } interface UpdateAvailableDetails { version: string; } interface UpdateCheckDetails { version: string; } interface ExtensionMessageEvent extends chrome.events.Event { addListener(callback: (message: any, sender: MessageSender, sendResponse: Function) => void): void; } interface ExtensionMessageExternalEvent extends chrome.events.Event { addListener(callback: (message: any, sender: MessageSender, sendResponse: Function) => void): void; } interface ExtensionConnectEvent extends chrome.events.Event { addListener(callback: (port: Port) => void): void; } interface ExtensionConnectExternalEvent extends chrome.events.Event { addListener(callback: (port: Port) => void): void; } interface RuntimeSuspendEvent extends chrome.events.Event { addListener(callback: Function): void; } interface RuntimeStartupEvent extends chrome.events.Event { addListener(callback: Function): void; } interface RuntimeInstalledEvent extends chrome.events.Event { addListener(callback: (details: InstalledDetails) => void): void; } interface RuntimeSuspendCanceledEvent extends chrome.events.Event { addListener(callback: Function): void; } interface RuntimeMessageEvent extends chrome.events.Event { addListener(callback: Function): void; } interface RuntimeRestartRequiredEvent extends chrome.events.Event { addListener(callback: (reason: string) => void): void; } interface RuntimeUpdateAvailableEvent extends chrome.events.Event { addListener(callback: (details: UpdateAvailableDetails) => void): void; } export function connect(connectInfo?: ConnectInfo): Port; export function connect(extensionId: string, connectInfo?: ConnectInfo): Port; export function connectNative(application: string): Port; export function getBackgroundPage(callback: (backgroundPage?: Window) => void): void; export function getManifest(): Object; export function getPackageDirectoryEntry(callback: (directoryEntry: any) => void): void; export function getPlatformInfo(callback: (platformInfo: PlatformInfo) => void): void; export function getURL(path: string): string; export function reload(): void; export function requestUpdateCheck(callback: (status: string, details?: UpdateCheckDetails) => void): void; export function restart(): void; export function sendMessage(message: any, responseCallback?: (response: any) => void): void; export function sendMessage(message: any, options: MessageOptions, responseCallback?: (response: any) => void): void; export function sendMessage(extensionId: string, message: any, responseCallback?: (response: any) => void): void; export function sendMessage(extensionId: string, message: any, options: MessageOptions, responseCallback?: (response: any) => void): void; export function sendNativeMessage(application: string, message: any, responseCallback?: (response: any) => void ): void; export function setUninstallUrl(url: string): void; var onConnect: ExtensionConnectEvent; var onConnectExternal: ExtensionConnectExternalEvent; var onSuspend: RuntimeSuspendEvent; var onStartup: RuntimeStartupEvent; var onInstalled: RuntimeInstalledEvent; var onSuspendCanceled: RuntimeSuspendCanceledEvent; var onMessage: RuntimeMessageEvent; var onMessageExternal: RuntimeMessageEvent; var onRestartRequired: RuntimeRestartRequiredEvent; var onUpdateAvailable: RuntimeUpdateAvailableEvent; } //////////////////// // Script Badge //////////////////// declare module chrome.scriptBadge { interface GetPopupDetails { tabId: number; } interface AttentionDetails { tabId: number; } interface SetPopupDetails { tabId: number; popup: string; } interface ScriptBadgeClickedEvent extends chrome.events.Event { addListener(callback: (tab: chrome.tabs.Tab) => void): void; } export function getPopup(details: GetPopupDetails, callback: Function): void; export function getAttention(details: AttentionDetails): void; export function setPopup(details: SetPopupDetails): void; var onClicked: ScriptBadgeClickedEvent; } //////////////////// // Storage //////////////////// declare module chrome.storage { interface StorageArea { getBytesInUse(callback: (bytesInUse: number) => void): void; getBytesInUse(keys: string, callback: (bytesInUse: number) => void): void; getBytesInUse(keys: string[], callback: (bytesInUse: number) => void): void; clear(callback?: Function): void; set(items: Object, callback?: Function): void; remove(keys: string, callback?: Function): void; remove(keys: string[], callback?: Function): void; get(callback: (items: Object) => void): void; get(keys: string, callback: (items: Object) => void): void; get(keys: string[], callback: (items: Object) => void): void; get(keys: Object, callback: (items: Object) => void): void; } interface StorageChange { newValue?: any; oldValue?: any; } interface Local extends StorageArea { QUOTA_BYTES: number; } interface Sync extends StorageArea { MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE: number; QUOT