diff --git a/github-electron/github-electron-main.d.ts b/github-electron/github-electron-main.d.ts
index 0ecdbf0301..a133155a93 100644
--- a/github-electron/github-electron-main.d.ts
+++ b/github-electron/github-electron-main.d.ts
@@ -1,10 +1,199 @@
-// Type definitions for the Electron 0.25.2 main process
+// Type definitions for the Electron 0.25.2 main process
// Project: http://electron.atom.io/
// Definitions by: jedmao
// Definitions: https://github.com/borisyankov/DefinitelyTyped
///
+declare module GitHubElectron {
+ interface ContentTracing {
+ /**
+ * Get a set of category groups. The category groups can change as new code paths are reached.
+ * @param callback Called once all child processes have acked to the getCategories request.
+ */
+ getCategories(callback: (categoryGroups: any[]) => void): void;
+ /**
+ * Start recording on all processes. Recording begins immediately locally, and asynchronously
+ * on child processes as soon as they receive the EnableRecording request.
+ * @param categoryFilter A filter to control what category groups should be traced.
+ * A filter can have an optional "-" prefix to exclude category groups that contain
+ * a matching category. Having both included and excluded category patterns in the
+ * same list would not be supported.
+ * @param options controls what kind of tracing is enabled, it could be a OR-ed
+ * combination of tracing.DEFAULT_OPTIONS, tracing.ENABLE_SYSTRACE, tracing.ENABLE_SAMPLING
+ * and tracing.RECORD_CONTINUOUSLY.
+ * @param callback Called once all child processes have acked to the startRecording request.
+ */
+ startRecording(categoryFilter: string, options: number, callback: Function): void;
+ /**
+ * Stop recording on all processes. Child processes typically are caching trace data and
+ * only rarely flush and send trace data back to the main process. That is because it may
+ * be an expensive operation to send the trace data over IPC, and we would like to avoid
+ * much runtime overhead of tracing. So, to end tracing, we must asynchronously ask all
+ * child processes to flush any pending trace data.
+ * @param resultFilePath Trace data will be written into this file if it is not empty,
+ * or into a temporary file.
+ * @param callback Called once all child processes have acked to the stopRecording request.
+ */
+ stopRecording(resultFilePath: string, callback:
+ /**
+ * @param filePath A file that contains the traced data.
+ */
+ (filePath: string) => void
+ ): void;
+ /**
+ * Start monitoring on all processes. Monitoring begins immediately locally, and asynchronously
+ * on child processes as soon as they receive the startMonitoring request.
+ * @param callback Called once all child processes have acked to the startMonitoring request.
+ */
+ startMonitoring(categoryFilter: string, options: number, callback: Function): void;
+ /**
+ * Stop monitoring on all processes.
+ * @param callback Called once all child processes have acked to the stopMonitoring request.
+ */
+ stopMonitoring(callback: Function): void;
+ /**
+ * Get the current monitoring traced data. Child processes typically are caching trace data
+ * and only rarely flush and send trace data back to the main process. That is because it may
+ * be an expensive operation to send the trace data over IPC, and we would like to avoid much
+ * runtime overhead of tracing. So, to end tracing, we must asynchronously ask all child
+ * processes to flush any pending trace data.
+ * @param callback Called once all child processes have acked to the captureMonitoringSnapshot request.
+ */
+ captureMonitoringSnapshot(resultFilePath: string, callback:
+ /**
+ * @param filePath A file that contains the traced data
+ * @returns {}
+ */
+ (filePath: string) => void
+ ): void;
+ /**
+ * Get the maximum across processes of trace buffer percent full state.
+ * @param callback Called when the TraceBufferUsage value is determined.
+ */
+ getTraceBufferUsage(callback: Function): void;
+ /**
+ * @param callback Called every time the given event occurs on any process.
+ */
+ setWatchEvent(categoryName: string, eventName: string, callback: Function): void;
+ /**
+ * Cancel the watch event. If tracing is enabled, this may race with the watch event callback.
+ */
+ cancelWatchEvent(): void;
+ DEFAULT_OPTIONS: number;
+ ENABLE_SYSTRACE: number;
+ ENABLE_SAMPLING: number;
+ RECORD_CONTINUOUSLY: number;
+ }
+
+ interface Dialog {
+ /**
+ * @param callback If supplied, the API call will be asynchronous.
+ * @returns On success, returns an array of file paths chosen by the user,
+ * otherwise returns undefined.
+ */
+ showOpenDialog: typeof GitHubElectron.Dialog.showOpenDialog;
+ /**
+ * @param callback If supplied, the API call will be asynchronous.
+ * @returns On success, returns the path of file chosen by the user, otherwise
+ * returns undefined.
+ */
+ showSaveDialog: typeof GitHubElectron.Dialog.showSaveDialog;
+ /**
+ * Shows a message box. It will block until the message box is closed. It returns .
+ * @param callback If supplied, the API call will be asynchronous.
+ * @returns The index of the clicked button.
+ */
+ showMessageBox: typeof GitHubElectron.Dialog.showMessageBox;
+
+ /**
+ * Runs a modal dialog that shows an error message. This API can be called safely
+ * before the ready event of app module emits, it is usually used to report errors
+ * in early stage of startup.
+ */
+ showErrorBox(title: string, content: string): void;
+ }
+
+ interface GlobalShortcut {
+ /**
+ * Registers a global shortcut of accelerator.
+ * @param accelerator Represents a keyboard shortcut. It can contain modifiers
+ * and key codes, combined by the "+" character.
+ * @param callback Called when the registered shortcut is pressed by the user.
+ * @returns {}
+ */
+ register(accelerator: string, callback: Function): void;
+ /**
+ * @param accelerator Represents a keyboard shortcut. It can contain modifiers
+ * and key codes, combined by the "+" character.
+ * @returns Whether the accelerator is registered.
+ */
+ isRegistered(accelerator: string): boolean;
+ /**
+ * Unregisters the global shortcut of keycode.
+ * @param accelerator Represents a keyboard shortcut. It can contain modifiers
+ * and key codes, combined by the "+" character.
+ */
+ unregister(accelerator: string): void;
+ /**
+ * Unregisters all the global shortcuts.
+ */
+ unregisterAll(): void;
+ }
+
+ class RequestFileJob {
+ /**
+ * Create a request job which would query a file of path and set corresponding mime types.
+ */
+ constructor(path: string);
+ }
+
+ class RequestStringJob {
+ /**
+ * Create a request job which sends a string as response.
+ */
+ constructor(options?: {
+ /**
+ * Default is "text/plain".
+ */
+ mimeType?: string;
+ /**
+ * Default is "UTF-8".
+ */
+ charset?: string;
+ data?: string;
+ });
+ }
+
+ class RequestBufferJob {
+ /**
+ * Create a request job which accepts a buffer and sends a string as response.
+ */
+ constructor(options?: {
+ /**
+ * Default is "application/octet-stream".
+ */
+ mimeType?: string;
+ /**
+ * Default is "UTF-8".
+ */
+ encoding?: string;
+ data?: Buffer;
+ });
+ }
+
+ interface Protocol {
+ registerProtocol(scheme: string, handler: (request: any) => void): void;
+ unregisterProtocol(scheme: string): void;
+ isHandledProtocol(scheme: string): boolean;
+ interceptProtocol(scheme: string, handler: (request: any) => void): void;
+ uninterceptProtocol(scheme: string): void;
+ RequestFileJob: typeof RequestFileJob;
+ RequestStringJob: typeof RequestStringJob;
+ RequestBufferJob: typeof RequestBufferJob;
+ }
+}
+
declare module 'app' {
var _app: GitHubElectron.App;
export = _app;
@@ -21,138 +210,18 @@ declare module 'browser-window' {
}
declare module 'content-tracing' {
- /**
- * Get a set of category groups. The category groups can change as new code paths are reached.
- * @param callback Called once all child processes have acked to the getCategories request.
- */
- export function getCategories(callback: (categoryGroups: any[]) => void): void;
- /**
- * Start recording on all processes. Recording begins immediately locally, and asynchronously
- * on child processes as soon as they receive the EnableRecording request.
- * @param categoryFilter A filter to control what category groups should be traced.
- * A filter can have an optional "-" prefix to exclude category groups that contain
- * a matching category. Having both included and excluded category patterns in the
- * same list would not be supported.
- * @param options controls what kind of tracing is enabled, it could be a OR-ed
- * combination of tracing.DEFAULT_OPTIONS, tracing.ENABLE_SYSTRACE, tracing.ENABLE_SAMPLING
- * and tracing.RECORD_CONTINUOUSLY.
- * @param callback Called once all child processes have acked to the startRecording request.
- */
- export function startRecording(categoryFilter: string, options: number, callback: Function): void;
- /**
- * Stop recording on all processes. Child processes typically are caching trace data and
- * only rarely flush and send trace data back to the main process. That is because it may
- * be an expensive operation to send the trace data over IPC, and we would like to avoid
- * much runtime overhead of tracing. So, to end tracing, we must asynchronously ask all
- * child processes to flush any pending trace data.
- * @param resultFilePath Trace data will be written into this file if it is not empty,
- * or into a temporary file.
- * @param callback Called once all child processes have acked to the stopRecording request.
- */
- export function stopRecording(resultFilePath: string, callback:
- /**
- * @param filePath A file that contains the traced data.
- */
- (filePath: string) => void
- ): void;
- /**
- * Start monitoring on all processes. Monitoring begins immediately locally, and asynchronously
- * on child processes as soon as they receive the startMonitoring request.
- * @param callback Called once all child processes have acked to the startMonitoring request.
- */
- export function startMonitoring(categoryFilter: string, options: number, callback: Function): void;
- /**
- * Stop monitoring on all processes.
- * @param callback Called once all child processes have acked to the stopMonitoring request.
- */
- export function stopMonitoring(callback: Function): void;
- /**
- * Get the current monitoring traced data. Child processes typically are caching trace data
- * and only rarely flush and send trace data back to the main process. That is because it may
- * be an expensive operation to send the trace data over IPC, and we would like to avoid much
- * runtime overhead of tracing. So, to end tracing, we must asynchronously ask all child
- * processes to flush any pending trace data.
- * @param callback Called once all child processes have acked to the captureMonitoringSnapshot request.
- */
- export function captureMonitoringSnapshot(resultFilePath: string, callback:
- /**
- * @param filePath A file that contains the traced data
- * @returns {}
- */
- (filePath: string) => void
- ): void;
- /**
- * Get the maximum across processes of trace buffer percent full state.
- * @param callback Called when the TraceBufferUsage value is determined.
- */
- export function getTraceBufferUsage(callback: Function): void;
- /**
- * @param callback Called every time the given event occurs on any process.
- */
- export function setWatchEvent(categoryName: string, eventName: string, callback: Function): void;
- /**
- * Cancel the watch event. If tracing is enabled, this may race with the watch event callback.
- */
- export function cancelWatchEvent(): void;
- export var DEFAULT_OPTIONS: number;
- export var ENABLE_SYSTRACE: number;
- export var ENABLE_SAMPLING: number;
- export var RECORD_CONTINUOUSLY: number;
+ var contentTracing: GitHubElectron.ContentTracing
+ export = contentTracing;
}
declare module 'dialog' {
- /**
- * @param callback If supplied, the API call will be asynchronous.
- * @returns On success, returns an array of file paths chosen by the user,
- * otherwise returns undefined.
- */
- export var showOpenDialog: typeof GitHubElectron.Dialog.showOpenDialog;
- /**
- * @param callback If supplied, the API call will be asynchronous.
- * @returns On success, returns the path of file chosen by the user, otherwise
- * returns undefined.
- */
- export var showSaveDialog: typeof GitHubElectron.Dialog.showSaveDialog;
- /**
- * Shows a message box. It will block until the message box is closed. It returns .
- * @param callback If supplied, the API call will be asynchronous.
- * @returns The index of the clicked button.
- */
- export var showMessageBox: typeof GitHubElectron.Dialog.showMessageBox;
-
- /**
- * Runs a modal dialog that shows an error message. This API can be called safely
- * before the ready event of app module emits, it is usually used to report errors
- * in early stage of startup.
- */
- export function showErrorBox(title: string, content: string): void;
+ var dialog: GitHubElectron.Dialog
+ export = dialog;
}
declare module 'global-shortcut' {
- /**
- * Registers a global shortcut of accelerator.
- * @param accelerator Represents a keyboard shortcut. It can contain modifiers
- * and key codes, combined by the "+" character.
- * @param callback Called when the registered shortcut is pressed by the user.
- * @returns {}
- */
- export function register(accelerator: string, callback: Function): void;
- /**
- * @param accelerator Represents a keyboard shortcut. It can contain modifiers
- * and key codes, combined by the "+" character.
- * @returns Whether the accelerator is registered.
- */
- export function isRegistered(accelerator: string): boolean;
- /**
- * Unregisters the global shortcut of keycode.
- * @param accelerator Represents a keyboard shortcut. It can contain modifiers
- * and key codes, combined by the "+" character.
- */
- export function unregister(accelerator: string): void;
- /**
- * Unregisters all the global shortcuts.
- */
- export function unregisterAll(): void;
+ var globalShortcut: GitHubElectron.GlobalShortcut;
+ export = globalShortcut;
}
declare module 'ipc' {
@@ -176,52 +245,26 @@ declare module 'power-monitor' {
}
declare module 'protocol' {
- export function registerProtocol(scheme: string, handler: (request: any) => void): void;
- export function unregisterProtocol(scheme: string): void;
- export function isHandledProtocol(scheme: string): boolean;
- export function interceptProtocol(scheme: string, handler: (request: any) => void): void;
- export function uninterceptProtocol(scheme: string): void;
- export class RequestFileJob {
- /**
- * Create a request job which would query a file of path and set corresponding mime types.
- */
- constructor(path: string);
- }
- export class RequestStringJob {
- /**
- * Create a request job which sends a string as response.
- */
- constructor(options?: {
- /**
- * Default is "text/plain".
- */
- mimeType?: string;
- /**
- * Default is "UTF-8".
- */
- charset?: string;
- data?: string;
- });
- }
- export class RequestBufferJob {
- /**
- * Create a request job which accepts a buffer and sends a string as response.
- */
- constructor(options?: {
- /**
- * Default is "application/octet-stream".
- */
- mimeType?: string;
- /**
- * Default is "UTF-8".
- */
- encoding?: string;
- data?: Buffer;
- });
- }
+ var protocol: GitHubElectron.Protocol;
+ export = protocol;
}
declare module 'tray' {
var Tray: typeof GitHubElectron.Tray;
export = Tray;
}
+
+interface NodeRequireFunction {
+ (id: 'app'): GitHubElectron.App
+ (id: 'auto-updater'): GitHubElectron.AutoUpdater
+ (id: 'browser-window'): typeof GitHubElectron.BrowserWindow
+ (id: 'content-tracing'): GitHubElectron.ContentTracing
+ (id: 'dialog'): GitHubElectron.Dialog
+ (id: 'global-shortcut'): GitHubElectron.GlobalShortcut
+ (id: 'ipc'): NodeJS.EventEmitter
+ (id: 'menu'): typeof GitHubElectron.Menu
+ (id: 'menu-item'): typeof GitHubElectron.MenuItem
+ (id: 'power-monitor'): NodeJS.EventEmitter
+ (id: 'protocol'): GitHubElectron.Protocol
+ (id: 'tray'): typeof GitHubElectron.Tray
+}
diff --git a/github-electron/github-electron-renderer.d.ts b/github-electron/github-electron-renderer.d.ts
index e2a310d284..2fff2bb346 100644
--- a/github-electron/github-electron-renderer.d.ts
+++ b/github-electron/github-electron-renderer.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for the Electron 0.25.2 renderer process (web page)
+// Type definitions for the Electron 0.25.2 renderer process (web page)
// Project: http://electron.atom.io/
// Definitions by: jedmao
// Definitions: https://github.com/borisyankov/DefinitelyTyped
@@ -6,8 +6,7 @@
///
declare module GitHubElectron {
-
- class InProcess implements NodeJS.EventEmitter {
+ export class InProcess implements NodeJS.EventEmitter {
addListener(event: string, listener: Function): InProcess;
on(event: string, listener: Function): InProcess;
once(event: string, listener: Function): InProcess;
@@ -37,69 +36,81 @@ declare module GitHubElectron {
sendToHost(channel: string, ...args: any[]): void;
}
- module Remote {
- export function getCurrentWindow(): BrowserWindow;
+ interface Remote {
+ /**
+ * @returns The object returned by require(module) in the main process.
+ */
+ require(module: string): any;
+ /**
+ * @returns The BrowserWindow object which this web page belongs to.
+ */
+ getCurrentWindow(): BrowserWindow
+ /**
+ * @returns The global variable of name (e.g. global[name]) in the main process.
+ */
+ getGlobal(name: string): any;
+ /**
+ * Returns the process object in the main process. This is the same as
+ * remote.getGlobal('process'), but gets cached.
+ */
+ process: any;
+ }
+
+ interface WebFrame {
+ /**
+ * Changes the zoom factor to the specified factor, zoom factor is
+ * zoom percent / 100, so 300% = 3.0.
+ */
+ setZoomFactor(factor: number): void;
+ /**
+ * @returns The current zoom factor.
+ */
+ getZoomFactor(): number;
+ /**
+ * Changes the zoom level to the specified level, 0 is "original size", and each
+ * increment above or below represents zooming 20% larger or smaller to default
+ * limits of 300% and 50% of original size, respectively.
+ */
+ setZoomLevel(level: number): void;
+ /**
+ * @returns The current zoom level.
+ */
+ getZoomLevel(): number;
+ /**
+ * Sets a provider for spell checking in input fields and text areas.
+ */
+ setSpellCheckProvider(language: string, autoCorrectWord: boolean, provider: {
+ /**
+ * @returns Whether the word passed is correctly spelled.
+ */
+ spellCheck: (text: string) => boolean;
+ }): void;
+ /**
+ * Sets the scheme as secure scheme. Secure schemes do not trigger mixed content
+ * warnings. For example, https and data are secure schemes because they cannot be
+ * corrupted by active network attackers.
+ */
+ registerUrlSchemeAsSecure(scheme: string): void;
}
}
declare module 'ipc' {
- var InProcess: GitHubElectron.InProcess;
- export = InProcess;
+ var inProcess: GitHubElectron.InProcess;
+ export = inProcess;
}
declare module 'remote' {
- /**
- * @returns The object returned by require(module) in the main process.
- */
- export function require(module: string): any;
- /**
- * @returns The BrowserWindow object which this web page belongs to.
- */
- export var getCurrentWindow: typeof GitHubElectron.Remote.getCurrentWindow;
- /**
- * @returns The global variable of name (e.g. global[name]) in the main process.
- */
- export function getGlobal(name: string): any;
- /**
- * Returns the process object in the main process. This is the same as
- * remote.getGlobal('process'), but gets cached.
- */
- export var process: any;
+ var remote: GitHubElectron.Remote;
+ export = remote;
}
declare module 'web-frame' {
- /**
- * Changes the zoom factor to the specified factor, zoom factor is
- * zoom percent / 100, so 300% = 3.0.
- */
- export function setZoomFactor(factor: number): void;
- /**
- * @returns The current zoom factor.
- */
- export function getZoomFactor(): number;
- /**
- * Changes the zoom level to the specified level, 0 is "original size", and each
- * increment above or below represents zooming 20% larger or smaller to default
- * limits of 300% and 50% of original size, respectively.
- */
- export function setZoomLevel(level: number): void;
- /**
- * @returns The current zoom level.
- */
- export function getZoomLevel(): number;
- /**
- * Sets a provider for spell checking in input fields and text areas.
- */
- export function setSpellCheckProvider(language: string, autoCorrectWord: boolean, provider: {
- /**
- * @returns Whether the word passed is correctly spelled.
- */
- spellCheck: (text: string) => boolean;
- }): void;
- /**
- * Sets the scheme as secure scheme. Secure schemes do not trigger mixed content
- * warnings. For example, https and data are secure schemes because they cannot be
- * corrupted by active network attackers.
- */
- export function registerUrlSchemeAsSecure(scheme: string): void;
+ var webframe: GitHubElectron.WebFrame;
+ export = webframe;
+}
+
+interface NodeRequireFunction {
+ (id: 'ipc'): GitHubElectron.InProcess
+ (id: 'remote'): GitHubElectron.Remote
+ (id: 'web-frame'): GitHubElectron.WebFrame
}
diff --git a/github-electron/github-electron.d.ts b/github-electron/github-electron.d.ts
index 4e1e289ca8..7b5d7c8981 100644
--- a/github-electron/github-electron.d.ts
+++ b/github-electron/github-electron.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Electron 0.25.2 (shared between main and rederer processes)
+// Type definitions for Electron 0.25.2 (shared between main and rederer processes)
// Project: http://electron.atom.io/
// Definitions by: jedmao
// Definitions: https://github.com/borisyankov/DefinitelyTyped
@@ -1131,123 +1131,159 @@ declare module GitHubElectron {
*/
setContextMenu(menu: Menu): void;
}
-}
-declare module 'clipboard' {
- /**
- * @returns The contents of the clipboard as plain text.
- */
- export function readText(type?: string): string;
- /**
- * Writes the text into the clipboard as plain text.
- */
- export function writeText(text: string, type?: string): void;
- /**
- * @returns The contents of the clipboard as a NativeImage.
- */
- export var readImage: typeof GitHubElectron.Clipboard.readImage;
- /**
- * Writes the image into the clipboard.
- */
- export var writeImage: typeof GitHubElectron.Clipboard.writeImage;
- /**
- * Clears everything in clipboard.
- */
- export function clear(type?: string): void;
- /**
- * Note: This API is experimental and could be removed in future.
- * @returns Whether the clipboard has data in the specified format.
- */
- export function has(format: string, type?: string): boolean;
- /**
- * Reads the data in the clipboard of the specified format.
- * Note: This API is experimental and could be removed in future.
- */
- export function read(format: string, type?: string): any;
-}
-
-declare module 'crash-reporter' {
- export function start(options?: {
+ interface Clipboard {
/**
- * Default: Electron
+ * @returns The contents of the clipboard as plain text.
*/
+ readText(type?: string): string;
+ /**
+ * Writes the text into the clipboard as plain text.
+ */
+ writeText(text: string, type?: string): void;
+ /**
+ * @returns The contents of the clipboard as a NativeImage.
+ */
+ readImage: typeof GitHubElectron.Clipboard.readImage;
+ /**
+ * Writes the image into the clipboard.
+ */
+ writeImage: typeof GitHubElectron.Clipboard.writeImage;
+ /**
+ * Clears everything in clipboard.
+ */
+ clear(type?: string): void;
+ /**
+ * Note: This API is experimental and could be removed in future.
+ * @returns Whether the clipboard has data in the specified format.
+ */
+ has(format: string, type?: string): boolean;
+ /**
+ * Reads the data in the clipboard of the specified format.
+ * Note: This API is experimental and could be removed in future.
+ */
+ read(format: string, type?: string): any;
+ }
+
+ interface CrashReporterStartOptions {
+ /**
+ * Default: Electron
+ */
productName?: string;
/**
- * Default: GitHub, Inc.
- */
+ * Default: GitHub, Inc.
+ */
companyName?: string;
/**
- * URL that crash reports would be sent to as POST.
- * Default: http://54.249.141.255:1127/post
- */
+ * URL that crash reports would be sent to as POST.
+ * Default: http://54.249.141.255:1127/post
+ */
submitUrl?: string;
/**
- * Send the crash report without user interaction.
- * Default: true.
- */
+ * Send the crash report without user interaction.
+ * Default: true.
+ */
autoSubmit?: boolean;
/**
- * Default: false.
- */
+ * Default: false.
+ */
ignoreSystemCrashHandler?: boolean;
/**
- * An object you can define which content will be send along with the report.
- * Only string properties are send correctly.
- * Nested objects are not supported.
- */
+ * An object you can define which content will be send along with the report.
+ * Only string properties are send correctly.
+ * Nested objects are not supported.
+ */
extra?: {}
- }): void;
-
- /**
- * @returns The date and ID of the last crash report. When there was no crash report
- * sent or the crash reporter is not started, null will be returned.
- */
- export function getLastCrashReport(): CrashReporterPayload;
-
+ }
+
interface CrashReporterPayload extends Object {
/**
- * E.g., "electron-crash-service".
- */
+ * E.g., "electron-crash-service".
+ */
rept: string;
/**
- * The version of Electron.
- */
+ * The version of Electron.
+ */
ver: string;
/**
- * E.g., "win32".
- */
+ * E.g., "win32".
+ */
platform: string;
/**
- * E.g., "renderer".
- */
+ * E.g., "renderer".
+ */
process_type: string;
ptime: number;
/**
- * The version in package.json.
- */
+ * The version in package.json.
+ */
_version: string;
/**
- * The product name in the crashReporter options object.
- */
+ * The product name in the crashReporter options object.
+ */
_productName: string;
/**
- * Name of the underlying product. In this case, Electron.
- */
+ * Name of the underlying product. In this case, Electron.
+ */
prod: string;
/**
- * The company name in the crashReporter options object.
- */
+ * The company name in the crashReporter options object.
+ */
_companyName: string;
/**
- * The crashreporter as a file.
- */
+ * The crashreporter as a file.
+ */
upload_file_minidump: File;
}
+
+ interface CrashReporter {
+ start(options?: CrashReporterStartOptions): void;
+
+ /**
+ * @returns The date and ID of the last crash report. When there was no crash report
+ * sent or the crash reporter is not started, null will be returned.
+ */
+ getLastCrashReport(): CrashReporterPayload;
+ }
+
+ interface Shell{
+ /**
+ * Show the given file in a file manager. If possible, select the file.
+ */
+ showItemInFolder(fullPath: string): void;
+ /**
+ * Open the given file in the desktop's default manner.
+ */
+ openItem(fullPath: string): void;
+ /**
+ * Open the given external protocol URL in the desktop's default manner
+ * (e.g., mailto: URLs in the default mail user agent).
+ */
+ openExternal(url: string): void;
+ /**
+ * Move the given file to trash and returns boolean status for the operation.
+ */
+ moveItemToTrash(fullPath: string): void;
+ /**
+ * Play the beep sound.
+ */
+ beep(): void;
+ }
+}
+
+declare module 'clipboard' {
+ var clipboard: GitHubElectron.Clipboard
+ export = clipboard;
+}
+
+declare module 'crash-reporter' {
+ var crashReporter: GitHubElectron.CrashReporter
+ export = crashReporter;
}
declare module 'native-image' {
- var NativeImage: typeof GitHubElectron.NativeImage;
- export = NativeImage;
+ var nativeImage: typeof GitHubElectron.NativeImage;
+ export = nativeImage;
}
declare module 'screen' {
@@ -1256,27 +1292,8 @@ declare module 'screen' {
}
declare module 'shell' {
- /**
- * Show the given file in a file manager. If possible, select the file.
- */
- export function showItemInFolder(fullPath: string): void;
- /**
- * Open the given file in the desktop's default manner.
- */
- export function openItem(fullPath: string): void;
- /**
- * Open the given external protocol URL in the desktop's default manner
- * (e.g., mailto: URLs in the default mail user agent).
- */
- export function openExternal(url: string): void;
- /**
- * Move the given file to trash and returns boolean status for the operation.
- */
- export function moveItemToTrash(fullPath: string): void;
- /**
- * Play the beep sound.
- */
- export function beep(): void;
+ var shell: GitHubElectron.Shell;
+ export = shell;
}
interface Window {
@@ -1293,3 +1310,11 @@ interface File {
*/
path: string;
}
+
+interface NodeRequireFunction {
+ (id: 'clipboard'): GitHubElectron.Clipboard
+ (id: 'crash-reporter'): GitHubElectron.CrashReporter
+ (id: 'native-image'): typeof GitHubElectron.NativeImage
+ (id: 'screen'): GitHubElectron.Screen
+ (id: 'shell'): GitHubElectron.Shell
+}