/// /** * This file augments the Electron TS namespace with the internal APIs * that are not documented but are used by Electron internally */ declare namespace Electron { enum ProcessType { browser = 'browser', renderer = 'renderer', worker = 'worker' } interface App { setVersion(version: string): void; setDesktopName(name: string): void; setAppPath(path: string | null): void; } interface SerializedError { message: string; stack?: string, name: string, from: Electron.ProcessType, cause: SerializedError, __ELECTRON_SERIALIZED_ERROR__: true } interface InjectionBase { url: string; code: string } interface ContentScript { js: Array; css: Array; runAt: string; matches: { some: (input: (pattern: string) => boolean | RegExpMatchArray | null) => boolean; } } interface RendererProcessPreference { contentScripts: Array extensionId: string; } interface IpcRendererInternal extends Electron.IpcRenderer { sendToAll(webContentsId: number, channel: string, ...args: any[]): void } const deprecate: ElectronInternal.DeprecationUtil; } declare namespace ElectronInternal { type DeprecationHandler = (message: string) => void; interface DeprecationUtil { setHandler(handler: DeprecationHandler): void; getHandler(): DeprecationHandler | null; warn(oldName: string, newName: string): void; log(message: string): void; function(fn: Function, newName: string): Function; event(emitter: NodeJS.EventEmitter, oldName: string, newName: string): void; removeProperty(object: T, propertyName: K): T; renameProperty(object: T, oldName: string, newName: K): T; promisify any>(fn: T): T; promisifyMultiArg any>(fn: T): T; } // Internal IPC has _replyInternal and NO reply method interface IpcMainInternalEvent extends Omit { _replyInternal(...args: any[]): void; } interface IpcMainInternal extends Electron.EventEmitter { on(channel: string, listener: (event: IpcMainInternalEvent, ...args: any[]) => void): this; once(channel: string, listener: (event: IpcMainInternalEvent, ...args: any[]) => void): this; } }