electron-types 39.1.2 → 40.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,32 +8,50 @@ The official `electron` package is ~200MB because it includes the Electron binar
8
8
 
9
9
  ## Installation
10
10
 
11
- Since this package only provides TypeScript types, install it as a dev dependency:
11
+ Since this package only provides TypeScript types, install it as a dev dependency. **Install the version that matches your Electron version** (see [Version Matching](#version-matching)):
12
12
 
13
13
  ```bash
14
- npm install -D electron-types
14
+ # Replace X.Y.Z with your Electron version (e.g., 39.2.7)
15
+ npm install -D electron-types@X.Y.Z
15
16
  # or
16
- yarn add -D electron-types
17
+ yarn add -D electron-types@X.Y.Z
17
18
  # or
18
- pnpm add -D electron-types
19
+ pnpm add -D electron-types@X.Y.Z
20
+ ```
21
+
22
+ You can also use semver ranges to stay compatible with your Electron version:
23
+
24
+ ```bash
25
+ # Match any 39.x.x version
26
+ npm install -D electron-types@^39.0.0
27
+
28
+ # Match any 39.2.x version
29
+ npm install -D electron-types@~39.2.0
30
+ ```
31
+
32
+ Or install without a version to get the latest:
33
+
34
+ ```bash
35
+ npm install -D electron-types
19
36
  ```
20
37
 
21
38
  ## Usage
22
39
 
23
- The types are available via the `Electron` namespace:
40
+ Add `electron-types` to your `tsconfig.json`:
24
41
 
25
- ```typescript
26
- // Types are available via the Electron namespace
27
- const win: Electron.BrowserWindow = /* ... */;
28
- const app: Electron.App = /* ... */;
42
+ ```json
43
+ {
44
+ "compilerOptions": {
45
+ "types": ["electron-types"]
46
+ }
47
+ }
29
48
  ```
30
49
 
31
- For projects that need to reference the types in a `.d.ts` file:
50
+ Then use the `Electron` namespace in your code:
32
51
 
33
52
  ```typescript
34
- /// <reference types="electron-types" />
35
-
36
- declare const myWindow: Electron.BrowserWindow;
53
+ const win: Electron.BrowserWindow = /* ... */;
54
+ const app: Electron.App = /* ... */;
37
55
  ```
38
56
 
39
57
  ## Version Matching
@@ -1,4 +1,4 @@
1
- // Type definitions for Electron 39.1.2
1
+ // Type definitions for Electron 40.0.0-beta.4
2
2
  // Project: http://electronjs.org/
3
3
  // Definitions by: The Electron Team <https://github.com/electron/electron>
4
4
  // Definitions: https://github.com/electron/typescript-definitions
@@ -1042,10 +1042,8 @@ declare namespace Electron {
1042
1042
  */
1043
1043
  exit(exitCode?: number): void;
1044
1044
  /**
1045
- * On macOS, makes the application the active app. On Windows, focuses on the
1046
- * application's first window. On Linux, either focuses on the first visible window
1047
- * (X11) or requests focus but may instead show a notification or flash the app
1048
- * icon (Wayland).
1045
+ * On Linux, focuses on the first visible window. On macOS, makes the application
1046
+ * the active app. On Windows, focuses on the application's first window.
1049
1047
  *
1050
1048
  * You should seek to use the `steal` option as sparingly as possible.
1051
1049
  */
@@ -1371,6 +1369,13 @@ declare namespace Electron {
1371
1369
  * whether or not the current OS version allows for native emoji pickers.
1372
1370
  */
1373
1371
  isEmojiPanelSupported(): boolean;
1372
+ /**
1373
+ * whether hardware acceleration is currently enabled.
1374
+ *
1375
+ * > [!NOTE] This information is only usable after the `gpu-info-update` event is
1376
+ * emitted.
1377
+ */
1378
+ isHardwareAccelerationEnabled(): boolean;
1374
1379
  /**
1375
1380
  * `true` if the application—including all of its windows—is hidden (e.g. with
1376
1381
  * `Command-H`), `false` otherwise.
@@ -3005,18 +3010,22 @@ declare namespace Electron {
3005
3010
  *
3006
3011
  * The `accentColor` parameter accepts the following values:
3007
3012
  *
3008
- * * **Color string** - Sets a custom accent color using standard CSS color formats
3009
- * (Hex, RGB, RGBA, HSL, HSLA, or named colors). Alpha values in RGBA/HSLA formats
3010
- * are ignored and the color is treated as fully opaque.
3011
- * * **`true`** - Uses the system's default accent color from user preferences in
3013
+ * * **Color string** - Like `true`, but sets a custom accent color using standard
3014
+ * CSS color formats (Hex, RGB, RGBA, HSL, HSLA, or named colors). Alpha values in
3015
+ * RGBA/HSLA formats are ignored and the color is treated as fully opaque.
3016
+ * * **`true`** - Enable accent color highlighting for the window with the system
3017
+ * accent color regardless of whether accent colors are enabled for windows in
3018
+ * System `Settings.`
3019
+ * * **`false`** - Disable accent color highlighting for the window regardless of
3020
+ * whether accent colors are currently enabled for windows in System Settings.
3021
+ * * **`null`** - Reset window accent color behavior to follow behavior set in
3012
3022
  * System Settings.
3013
- * * **`false`** - Explicitly disables accent color highlighting for the window.
3014
3023
  *
3015
3024
  * Examples:
3016
3025
  *
3017
3026
  * @platform win32
3018
3027
  */
3019
- setAccentColor(accentColor: (boolean) | (string)): void;
3028
+ setAccentColor(accentColor: (boolean) | (string) | (null)): void;
3020
3029
  /**
3021
3030
  * Sets whether the window should show always on top of other windows. After
3022
3031
  * setting this, the window is still a normal window, not a toolbox window which
@@ -3881,7 +3890,9 @@ declare namespace Electron {
3881
3890
  trafficLightPosition?: Point;
3882
3891
  /**
3883
3892
  * Makes the window transparent. Default is `false`. On Windows, does not work
3884
- * unless the window is frameless.
3893
+ * unless the window is frameless. When you add a `View` to a `BaseWindow`, you'll
3894
+ * need to call `view.setBackgroundColor` with a transparent background color on
3895
+ * that view to make its background transparent as well.
3885
3896
  */
3886
3897
  transparent?: boolean;
3887
3898
  /**
@@ -5258,8 +5269,6 @@ declare namespace Electron {
5258
5269
  addTabbedWindow(browserWindow: BrowserWindow): void;
5259
5270
  /**
5260
5271
  * Removes focus from the window.
5261
- *
5262
- * Not supported on Wayland (Linux).
5263
5272
  */
5264
5273
  blur(): void;
5265
5274
  blurWebView(): void;
@@ -5275,8 +5284,6 @@ declare namespace Electron {
5275
5284
  capturePage(rect?: Rectangle, opts?: Opts): Promise<Electron.NativeImage>;
5276
5285
  /**
5277
5286
  * Moves window to the center of the screen.
5278
- *
5279
- * Not supported on Wayland (Linux).
5280
5287
  */
5281
5288
  center(): void;
5282
5289
  /**
@@ -5303,9 +5310,6 @@ declare namespace Electron {
5303
5310
  flashFrame(flag: boolean): void;
5304
5311
  /**
5305
5312
  * Focuses on the window.
5306
- *
5307
- * On Wayland (Linux), the desktop environment may show a notification or flash the
5308
- * app icon if the window or app is not already focused.
5309
5313
  */
5310
5314
  focus(): void;
5311
5315
  focusOnWebView(): void;
@@ -5652,6 +5656,9 @@ declare namespace Electron {
5652
5656
  /**
5653
5657
  * the promise will resolve when the page has finished loading (see
5654
5658
  * `did-finish-load`), and rejects if the page fails to load (see `did-fail-load`).
5659
+ * A noop rejection handler is already attached, which avoids unhandled rejection
5660
+ * errors. If the existing page has a beforeUnload handler, `did-fail-load` will be
5661
+ * called unless `will-prevent-unload` is handled.
5655
5662
  *
5656
5663
  * Same as `webContents.loadURL(url[, options])`.
5657
5664
  *
@@ -5696,9 +5703,7 @@ declare namespace Electron {
5696
5703
  */
5697
5704
  moveTabToNewWindow(): void;
5698
5705
  /**
5699
- * Moves window to top(z-order) regardless of focus.
5700
- *
5701
- * Not supported on Wayland (Linux).
5706
+ * Moves window to top(z-order) regardless of focus
5702
5707
  */
5703
5708
  moveTop(): void;
5704
5709
  /**
@@ -5748,18 +5753,22 @@ declare namespace Electron {
5748
5753
  *
5749
5754
  * The `accentColor` parameter accepts the following values:
5750
5755
  *
5751
- * * **Color string** - Sets a custom accent color using standard CSS color formats
5752
- * (Hex, RGB, RGBA, HSL, HSLA, or named colors). Alpha values in RGBA/HSLA formats
5753
- * are ignored and the color is treated as fully opaque.
5754
- * * **`true`** - Uses the system's default accent color from user preferences in
5756
+ * * **Color string** - Like `true`, but sets a custom accent color using standard
5757
+ * CSS color formats (Hex, RGB, RGBA, HSL, HSLA, or named colors). Alpha values in
5758
+ * RGBA/HSLA formats are ignored and the color is treated as fully opaque.
5759
+ * * **`true`** - Enable accent color highlighting for the window with the system
5760
+ * accent color regardless of whether accent colors are enabled for windows in
5761
+ * System `Settings.`
5762
+ * * **`false`** - Disable accent color highlighting for the window regardless of
5763
+ * whether accent colors are currently enabled for windows in System Settings.
5764
+ * * **`null`** - Reset window accent color behavior to follow behavior set in
5755
5765
  * System Settings.
5756
- * * **`false`** - Explicitly disables accent color highlighting for the window.
5757
5766
  *
5758
5767
  * Examples:
5759
5768
  *
5760
5769
  * @platform win32
5761
5770
  */
5762
- setAccentColor(accentColor: (boolean) | (string)): void;
5771
+ setAccentColor(accentColor: (boolean) | (string) | (null)): void;
5763
5772
  /**
5764
5773
  * Sets whether the window should show always on top of other windows. After
5765
5774
  * setting this, the window is still a normal window, not a toolbox window which
@@ -5856,8 +5865,6 @@ declare namespace Electron {
5856
5865
  * Resizes and moves the window to the supplied bounds. Any properties that are not
5857
5866
  * supplied will default to their current values.
5858
5867
  *
5859
- * On Wayland (Linux), has the same limitations as `setSize` and `setPosition`.
5860
- *
5861
5868
  * > [!NOTE] On macOS, the y-coordinate value cannot be smaller than the Tray
5862
5869
  * height. The tray height has changed over time and depends on the operating
5863
5870
  * system, but is between 20-40px. Passing a value lower than the tray height will
@@ -5881,9 +5888,6 @@ declare namespace Electron {
5881
5888
  /**
5882
5889
  * Resizes and moves the window's client area (e.g. the web page) to the supplied
5883
5890
  * bounds.
5884
- *
5885
- * On Wayland (Linux), has the same limitations as `setContentSize` and
5886
- * `setPosition`.
5887
5891
  */
5888
5892
  setContentBounds(bounds: Rectangle, animate?: boolean): void;
5889
5893
  /**
@@ -5904,9 +5908,6 @@ declare namespace Electron {
5904
5908
  setContentProtection(enable: boolean): void;
5905
5909
  /**
5906
5910
  * Resizes the window's client area (e.g. the web page) to `width` and `height`.
5907
- *
5908
- * On Wayland (Linux), may not work as some window managers restrict programmatic
5909
- * window resizing.
5910
5911
  */
5911
5912
  setContentSize(width: number, height: number, animate?: boolean): void;
5912
5913
  /**
@@ -6031,8 +6032,6 @@ declare namespace Electron {
6031
6032
  setParentWindow(parent: (BrowserWindow) | (null)): void;
6032
6033
  /**
6033
6034
  * Moves window to `x` and `y`.
6034
- *
6035
- * Not supported on Wayland (Linux).
6036
6035
  */
6037
6036
  setPosition(x: number, y: number, animate?: boolean): void;
6038
6037
  /**
@@ -6092,9 +6091,6 @@ declare namespace Electron {
6092
6091
  /**
6093
6092
  * Resizes the window to `width` and `height`. If `width` or `height` are below any
6094
6093
  * set minimum size constraints the window will snap to its minimum size.
6095
- *
6096
- * On Wayland (Linux), may not work as some window managers restrict programmatic
6097
- * window resizing.
6098
6094
  */
6099
6095
  setSize(width: number, height: number, animate?: boolean): void;
6100
6096
  /**
@@ -6240,8 +6236,6 @@ declare namespace Electron {
6240
6236
  showDefinitionForSelection(): void;
6241
6237
  /**
6242
6238
  * Shows the window but doesn't focus on it.
6243
- *
6244
- * Not supported on Wayland (Linux).
6245
6239
  */
6246
6240
  showInactive(): void;
6247
6241
  /**
@@ -9583,8 +9577,8 @@ declare namespace Electron {
9583
9577
  static createFromDataURL(dataURL: string): NativeImage;
9584
9578
  /**
9585
9579
  * Creates a new `NativeImage` instance from the `NSImage` that maps to the given
9586
- * image name. See Apple's `NSImageName` documentation for a list of possible
9587
- * values.
9580
+ * image name. See Apple's `NSImageName` documentation and SF Symbols for a list of
9581
+ * possible values.
9588
9582
  *
9589
9583
  * The `hslShift` is applied to the image with the following rules:
9590
9584
  *
@@ -9608,6 +9602,10 @@ declare namespace Electron {
9608
9602
  *
9609
9603
  * where `SYSTEM_IMAGE_NAME` should be replaced with any value from this list.
9610
9604
  *
9605
+ * For SF Symbols, usage looks as follows:
9606
+ *
9607
+ * where `'square.and.pencil'` is the symbol name from the SF Symbols app.
9608
+ *
9611
9609
  * @platform darwin
9612
9610
  */
9613
9611
  static createFromNamedImage(imageName: string, hslShift?: number[]): NativeImage;
@@ -11888,7 +11886,8 @@ declare namespace Electron {
11888
11886
  */
11889
11887
  static fromPath(path: string, options?: FromPathOptions): Session;
11890
11888
  /**
11891
- * A `Session` object, the default session object of the app.
11889
+ * A `Session` object, the default session object of the app, available after
11890
+ * `app.whenReady` is called.
11892
11891
  */
11893
11892
  static defaultSession: Session;
11894
11893
  /**
@@ -13004,6 +13003,50 @@ declare namespace Electron {
13004
13003
  totalSizeBytes: number;
13005
13004
  }
13006
13005
 
13006
+ interface SharedTexture {
13007
+
13008
+ // Docs: https://electronjs.org/docs/api/shared-texture
13009
+
13010
+ /**
13011
+ * Imports the shared texture from the given options.
13012
+ *
13013
+ * > [!NOTE] This method is only available in the main process.
13014
+ *
13015
+ * The imported shared texture.
13016
+ *
13017
+ * @experimental
13018
+ */
13019
+ importSharedTexture(options: ImportSharedTextureOptions): SharedTextureImported;
13020
+ /**
13021
+ * Send the imported shared texture to a renderer process. You must register a
13022
+ * receiver at renderer process before calling this method. This method has a
13023
+ * 1000ms timeout. Ensure the receiver is set and the renderer process is alive
13024
+ * before calling this method.
13025
+ *
13026
+ * > [!NOTE] This method is only available in the main process.
13027
+ *
13028
+ * Resolves when the transfer is complete.
13029
+ *
13030
+ * @experimental
13031
+ */
13032
+ sendSharedTexture(options: SendSharedTextureOptions, ...args: any[]): Promise<void>;
13033
+ /**
13034
+ * Set a callback to receive imported shared textures from the main process.
13035
+ *
13036
+ * > [!NOTE] This method is only available in the renderer process.
13037
+ *
13038
+ * @experimental
13039
+ */
13040
+ setSharedTextureReceiver(callback: (receivedSharedTextureData: ReceivedSharedTextureData, ...args: any[]) => Promise<void>): void;
13041
+ /**
13042
+ * A `SharedTextureSubtle` property, provides subtle APIs for interacting with
13043
+ * shared texture for advanced users.
13044
+ *
13045
+ * @experimental
13046
+ */
13047
+ subtle: SharedTextureSubtle;
13048
+ }
13049
+
13007
13050
  interface SharedTextureHandle {
13008
13051
 
13009
13052
  // Docs: https://electronjs.org/docs/api/structures/shared-texture-handle
@@ -13030,6 +13073,165 @@ declare namespace Electron {
13030
13073
  ntHandle?: Buffer;
13031
13074
  }
13032
13075
 
13076
+ interface SharedTextureImported {
13077
+
13078
+ // Docs: https://electronjs.org/docs/api/structures/shared-texture-imported
13079
+
13080
+ /**
13081
+ * Create a `VideoFrame` that uses the imported shared texture in the current
13082
+ * process. You can call `VideoFrame.close()` once you've finished using the
13083
+ * object. The underlying resources will wait for GPU finish internally.
13084
+ */
13085
+ getVideoFrame: () => VideoFrame;
13086
+ /**
13087
+ * Release this object's reference of the imported shared texture. The underlying
13088
+ * resource will be alive until every reference is released.
13089
+ */
13090
+ release: () => void;
13091
+ /**
13092
+ * Provides subtle APIs to interact with the imported shared texture for advanced
13093
+ * users.
13094
+ */
13095
+ subtle: SharedTextureImportedSubtle;
13096
+ /**
13097
+ * The unique identifier of the imported shared texture.
13098
+ */
13099
+ textureId: string;
13100
+ }
13101
+
13102
+ interface SharedTextureImportedSubtle {
13103
+
13104
+ // Docs: https://electronjs.org/docs/api/structures/shared-texture-imported-subtle
13105
+
13106
+ /**
13107
+ * This method is for advanced users. If used, it is typically called after
13108
+ * `finishTransferSharedTexture`, and should be passed to the object which was
13109
+ * called `startTransferSharedTexture` to prevent the source object release the
13110
+ * underlying resource before the target object actually acquire the reference at
13111
+ * gpu process asyncly.
13112
+ */
13113
+ getFrameCreationSyncToken: () => SharedTextureSyncToken;
13114
+ /**
13115
+ * Create a `VideoFrame` that uses the imported shared texture in the current
13116
+ * process. You can call `VideoFrame.close()` once you've finished using the
13117
+ * object. The underlying resources will wait for GPU finish internally.
13118
+ */
13119
+ getVideoFrame: () => VideoFrame;
13120
+ /**
13121
+ * Release the resources. If you transferred and get multiple
13122
+ * `SharedTextureImported` objects, you have to `release` every one of them. The
13123
+ * resource on the GPU process will be destroyed when the last one is released.
13124
+ */
13125
+ release: (callback?: () => void) => void;
13126
+ /**
13127
+ * This method is for advanced users. If used, this object's underlying resource
13128
+ * will not be released until the set sync token is fulfilled at gpu process. By
13129
+ * using sync tokens, users are not required to use release callbacks for lifetime
13130
+ * management.
13131
+ */
13132
+ setReleaseSyncToken: (syncToken: SharedTextureSyncToken) => void;
13133
+ /**
13134
+ * Create a `SharedTextureTransfer` that can be serialized and transferred to other
13135
+ * processes.
13136
+ */
13137
+ startTransferSharedTexture: () => SharedTextureTransfer;
13138
+ }
13139
+
13140
+ interface SharedTextureImportTextureInfo {
13141
+
13142
+ // Docs: https://electronjs.org/docs/api/structures/shared-texture-import-texture-info
13143
+
13144
+ /**
13145
+ * The full dimensions of the shared texture.
13146
+ */
13147
+ codedSize: Size;
13148
+ /**
13149
+ * The color space of the texture.
13150
+ */
13151
+ colorSpace?: ColorSpace;
13152
+ /**
13153
+ * The shared texture handle.
13154
+ */
13155
+ handle: SharedTextureHandle;
13156
+ /**
13157
+ * The pixel format of the texture.
13158
+ */
13159
+ pixelFormat: ('bgra' | 'rgba' | 'rgbaf16');
13160
+ /**
13161
+ * A timestamp in microseconds that will be reflected to `VideoFrame`.
13162
+ */
13163
+ timestamp?: number;
13164
+ /**
13165
+ * A subsection of [0, 0, codedSize.width, codedSize.height]. In common cases, it
13166
+ * is the full section area.
13167
+ */
13168
+ visibleRect?: Rectangle;
13169
+ }
13170
+
13171
+ interface SharedTextureSubtle {
13172
+
13173
+ // Docs: https://electronjs.org/docs/api/structures/shared-texture-subtle
13174
+
13175
+ /**
13176
+ * Finishes the transfer of the shared texture and gets the transferred shared
13177
+ * texture. Returns the imported shared texture from the transfer object.
13178
+ */
13179
+ finishTransferSharedTexture: (transfer: SharedTextureTransfer) => SharedTextureImportedSubtle;
13180
+ /**
13181
+ * Imports the shared texture from the given options. Returns the imported shared
13182
+ * texture.
13183
+ */
13184
+ importSharedTexture: (textureInfo: SharedTextureImportTextureInfo) => SharedTextureImportedSubtle;
13185
+ }
13186
+
13187
+ interface SharedTextureSyncToken {
13188
+
13189
+ // Docs: https://electronjs.org/docs/api/structures/shared-texture-sync-token
13190
+
13191
+ /**
13192
+ * The opaque data for sync token.
13193
+ */
13194
+ syncToken: string;
13195
+ }
13196
+
13197
+ interface SharedTextureTransfer {
13198
+
13199
+ // Docs: https://electronjs.org/docs/api/structures/shared-texture-transfer
13200
+
13201
+ /**
13202
+ * The full dimensions of the shared texture.
13203
+ *
13204
+ */
13205
+ readonly codedSize: Size;
13206
+ /**
13207
+ * The pixel format of the transferring texture.
13208
+ *
13209
+ */
13210
+ readonly pixelFormat: string;
13211
+ /**
13212
+ * The opaque sync token data for frame creation.
13213
+ *
13214
+ */
13215
+ readonly syncToken: string;
13216
+ /**
13217
+ * A timestamp in microseconds that will be reflected to `VideoFrame`.
13218
+ *
13219
+ */
13220
+ readonly timestamp: number;
13221
+ /**
13222
+ * The opaque transfer data of the shared texture. This can be transferred across
13223
+ * Electron processes.
13224
+ *
13225
+ */
13226
+ readonly transfer: string;
13227
+ /**
13228
+ * A subsection of [0, 0, codedSize.width(), codedSize.height()]. In common cases,
13229
+ * it is the full section area.
13230
+ *
13231
+ */
13232
+ readonly visibleRect: Rectangle;
13233
+ }
13234
+
13033
13235
  interface SharedWorkerInfo {
13034
13236
 
13035
13237
  // Docs: https://electronjs.org/docs/api/structures/shared-worker-info
@@ -17422,7 +17624,8 @@ declare namespace Electron {
17422
17624
  * the promise will resolve when the page has finished loading (see
17423
17625
  * `did-finish-load`), and rejects if the page fails to load (see `did-fail-load`).
17424
17626
  * A noop rejection handler is already attached, which avoids unhandled rejection
17425
- * errors.
17627
+ * errors. If the existing page has a beforeUnload handler, `did-fail-load` will be
17628
+ * called unless `will-prevent-unload` is handled.
17426
17629
  *
17427
17630
  * Loads the `url` in the window. The `url` must contain the protocol prefix, e.g.
17428
17631
  * the `http://` or `file://`. If the load should bypass http cache then use the
@@ -19724,6 +19927,13 @@ declare namespace Electron {
19724
19927
  * `session` is explicitly specified, `partition` is ignored.
19725
19928
  */
19726
19929
  partition?: string;
19930
+ /**
19931
+ * When set to `true`, custom protocol handlers registered for the request's URL
19932
+ * scheme will not be called. This allows forwarding an intercepted request to the
19933
+ * built-in handler. webRequest handlers will still be triggered when bypassing
19934
+ * custom protocols. Defaults to `false`.
19935
+ */
19936
+ bypassCustomProtocolHandlers?: boolean;
19727
19937
  /**
19728
19938
  * Can be `include`, `omit` or `same-origin`. Whether to send credentials with this
19729
19939
  * request. If set to `include`, credentials from the session associated with the
@@ -20796,6 +21006,18 @@ declare namespace Electron {
20796
21006
  password: string;
20797
21007
  }
20798
21008
 
21009
+ interface ImportSharedTextureOptions {
21010
+ /**
21011
+ * The information of the shared texture to import.
21012
+ */
21013
+ textureInfo: SharedTextureImportTextureInfo;
21014
+ /**
21015
+ * Called when all references in all processes are released. You should keep the
21016
+ * imported texture valid until this callback is called.
21017
+ */
21018
+ allReferencesReleased?: () => void;
21019
+ }
21020
+
20799
21021
  interface Info {
20800
21022
  /**
20801
21023
  * Security origin for the isolated world.
@@ -21085,6 +21307,9 @@ declare namespace Electron {
21085
21307
  * An Accelerator string.
21086
21308
  */
21087
21309
  accelerator?: string;
21310
+ /**
21311
+ * Can be a NativeImage or the file path of an icon.
21312
+ */
21088
21313
  icon?: (NativeImage) | (string);
21089
21314
  /**
21090
21315
  * If false, the menu item will be greyed out and unclickable.
@@ -22088,6 +22313,13 @@ declare namespace Electron {
22088
22313
  url: string;
22089
22314
  }
22090
22315
 
22316
+ interface ReceivedSharedTextureData {
22317
+ /**
22318
+ * The imported shared texture.
22319
+ */
22320
+ importedSharedTexture: SharedTextureImported;
22321
+ }
22322
+
22091
22323
  interface RegistrationCompletedDetails {
22092
22324
  /**
22093
22325
  * The base URL that a service worker is registered for
@@ -22350,6 +22582,20 @@ declare namespace Electron {
22350
22582
  frame: (WebFrameMain) | (null);
22351
22583
  }
22352
22584
 
22585
+ interface SendSharedTextureOptions {
22586
+ /**
22587
+ * The target frame to transfer the shared texture to. For `WebContents`, you can
22588
+ * pass `webContents.mainFrame`. If you provide a `webFrameMain` that is not a main
22589
+ * frame, you'll need to enable `webPreferences.nodeIntegrationInSubFrames` for
22590
+ * this, since this feature requires IPC between main and the frame.
22591
+ */
22592
+ frame: WebFrameMain;
22593
+ /**
22594
+ * The imported shared texture.
22595
+ */
22596
+ importedSharedTexture: SharedTextureImported;
22597
+ }
22598
+
22353
22599
  interface SerialPortRevokedDetails {
22354
22600
  port: SerialPort;
22355
22601
  /**
@@ -23725,6 +23971,8 @@ declare namespace Electron {
23725
23971
  type CrashReporter = Electron.CrashReporter;
23726
23972
  const nativeImage: typeof NativeImage;
23727
23973
  type NativeImage = Electron.NativeImage;
23974
+ const sharedTexture: SharedTexture;
23975
+ type SharedTexture = Electron.SharedTexture;
23728
23976
  const shell: Shell;
23729
23977
  type Shell = Electron.Shell;
23730
23978
  type AboutPanelOptionsOptions = Electron.AboutPanelOptionsOptions;
@@ -23804,6 +24052,7 @@ declare namespace Electron {
23804
24052
  type HidDeviceRevokedDetails = Electron.HidDeviceRevokedDetails;
23805
24053
  type IgnoreMouseEventsOptions = Electron.IgnoreMouseEventsOptions;
23806
24054
  type ImportCertificateOptions = Electron.ImportCertificateOptions;
24055
+ type ImportSharedTextureOptions = Electron.ImportSharedTextureOptions;
23807
24056
  type Info = Electron.Info;
23808
24057
  type Input = Electron.Input;
23809
24058
  type InsertCSSOptions = Electron.InsertCSSOptions;
@@ -23857,6 +24106,7 @@ declare namespace Electron {
23857
24106
  type Provider = Electron.Provider;
23858
24107
  type PurchaseProductOpts = Electron.PurchaseProductOpts;
23859
24108
  type ReadBookmark = Electron.ReadBookmark;
24109
+ type ReceivedSharedTextureData = Electron.ReceivedSharedTextureData;
23860
24110
  type RegistrationCompletedDetails = Electron.RegistrationCompletedDetails;
23861
24111
  type RelaunchOptions = Electron.RelaunchOptions;
23862
24112
  type RenderProcessGoneEvent = Electron.RenderProcessGoneEvent;
@@ -23872,6 +24122,7 @@ declare namespace Electron {
23872
24122
  type SaveDialogSyncOptions = Electron.SaveDialogSyncOptions;
23873
24123
  type SelectHidDeviceDetails = Electron.SelectHidDeviceDetails;
23874
24124
  type SelectUsbDeviceDetails = Electron.SelectUsbDeviceDetails;
24125
+ type SendSharedTextureOptions = Electron.SendSharedTextureOptions;
23875
24126
  type SerialPortRevokedDetails = Electron.SerialPortRevokedDetails;
23876
24127
  type ServiceWorkersRunningStatusChangedEventParams = Electron.ServiceWorkersRunningStatusChangedEventParams;
23877
24128
  type Settings = Electron.Settings;
@@ -24008,6 +24259,12 @@ declare namespace Electron {
24008
24259
  type SharedDictionaryInfo = Electron.SharedDictionaryInfo;
24009
24260
  type SharedDictionaryUsageInfo = Electron.SharedDictionaryUsageInfo;
24010
24261
  type SharedTextureHandle = Electron.SharedTextureHandle;
24262
+ type SharedTextureImported = Electron.SharedTextureImported;
24263
+ type SharedTextureImportedSubtle = Electron.SharedTextureImportedSubtle;
24264
+ type SharedTextureImportTextureInfo = Electron.SharedTextureImportTextureInfo;
24265
+ type SharedTextureSubtle = Electron.SharedTextureSubtle;
24266
+ type SharedTextureSyncToken = Electron.SharedTextureSyncToken;
24267
+ type SharedTextureTransfer = Electron.SharedTextureTransfer;
24011
24268
  type SharedWorkerInfo = Electron.SharedWorkerInfo;
24012
24269
  type SharingItem = Electron.SharingItem;
24013
24270
  type ShortcutDetails = Electron.ShortcutDetails;
@@ -24189,6 +24446,7 @@ declare namespace Electron {
24189
24446
  type HidDeviceRevokedDetails = Electron.HidDeviceRevokedDetails;
24190
24447
  type IgnoreMouseEventsOptions = Electron.IgnoreMouseEventsOptions;
24191
24448
  type ImportCertificateOptions = Electron.ImportCertificateOptions;
24449
+ type ImportSharedTextureOptions = Electron.ImportSharedTextureOptions;
24192
24450
  type Info = Electron.Info;
24193
24451
  type Input = Electron.Input;
24194
24452
  type InsertCSSOptions = Electron.InsertCSSOptions;
@@ -24242,6 +24500,7 @@ declare namespace Electron {
24242
24500
  type Provider = Electron.Provider;
24243
24501
  type PurchaseProductOpts = Electron.PurchaseProductOpts;
24244
24502
  type ReadBookmark = Electron.ReadBookmark;
24503
+ type ReceivedSharedTextureData = Electron.ReceivedSharedTextureData;
24245
24504
  type RegistrationCompletedDetails = Electron.RegistrationCompletedDetails;
24246
24505
  type RelaunchOptions = Electron.RelaunchOptions;
24247
24506
  type RenderProcessGoneEvent = Electron.RenderProcessGoneEvent;
@@ -24257,6 +24516,7 @@ declare namespace Electron {
24257
24516
  type SaveDialogSyncOptions = Electron.SaveDialogSyncOptions;
24258
24517
  type SelectHidDeviceDetails = Electron.SelectHidDeviceDetails;
24259
24518
  type SelectUsbDeviceDetails = Electron.SelectUsbDeviceDetails;
24519
+ type SendSharedTextureOptions = Electron.SendSharedTextureOptions;
24260
24520
  type SerialPortRevokedDetails = Electron.SerialPortRevokedDetails;
24261
24521
  type ServiceWorkersRunningStatusChangedEventParams = Electron.ServiceWorkersRunningStatusChangedEventParams;
24262
24522
  type Settings = Electron.Settings;
@@ -24393,6 +24653,12 @@ declare namespace Electron {
24393
24653
  type SharedDictionaryInfo = Electron.SharedDictionaryInfo;
24394
24654
  type SharedDictionaryUsageInfo = Electron.SharedDictionaryUsageInfo;
24395
24655
  type SharedTextureHandle = Electron.SharedTextureHandle;
24656
+ type SharedTextureImported = Electron.SharedTextureImported;
24657
+ type SharedTextureImportedSubtle = Electron.SharedTextureImportedSubtle;
24658
+ type SharedTextureImportTextureInfo = Electron.SharedTextureImportTextureInfo;
24659
+ type SharedTextureSubtle = Electron.SharedTextureSubtle;
24660
+ type SharedTextureSyncToken = Electron.SharedTextureSyncToken;
24661
+ type SharedTextureTransfer = Electron.SharedTextureTransfer;
24396
24662
  type SharedWorkerInfo = Electron.SharedWorkerInfo;
24397
24663
  type SharingItem = Electron.SharingItem;
24398
24664
  type ShortcutDetails = Electron.ShortcutDetails;
@@ -24502,6 +24768,7 @@ declare namespace Electron {
24502
24768
  type HidDeviceRevokedDetails = Electron.HidDeviceRevokedDetails;
24503
24769
  type IgnoreMouseEventsOptions = Electron.IgnoreMouseEventsOptions;
24504
24770
  type ImportCertificateOptions = Electron.ImportCertificateOptions;
24771
+ type ImportSharedTextureOptions = Electron.ImportSharedTextureOptions;
24505
24772
  type Info = Electron.Info;
24506
24773
  type Input = Electron.Input;
24507
24774
  type InsertCSSOptions = Electron.InsertCSSOptions;
@@ -24555,6 +24822,7 @@ declare namespace Electron {
24555
24822
  type Provider = Electron.Provider;
24556
24823
  type PurchaseProductOpts = Electron.PurchaseProductOpts;
24557
24824
  type ReadBookmark = Electron.ReadBookmark;
24825
+ type ReceivedSharedTextureData = Electron.ReceivedSharedTextureData;
24558
24826
  type RegistrationCompletedDetails = Electron.RegistrationCompletedDetails;
24559
24827
  type RelaunchOptions = Electron.RelaunchOptions;
24560
24828
  type RenderProcessGoneEvent = Electron.RenderProcessGoneEvent;
@@ -24570,6 +24838,7 @@ declare namespace Electron {
24570
24838
  type SaveDialogSyncOptions = Electron.SaveDialogSyncOptions;
24571
24839
  type SelectHidDeviceDetails = Electron.SelectHidDeviceDetails;
24572
24840
  type SelectUsbDeviceDetails = Electron.SelectUsbDeviceDetails;
24841
+ type SendSharedTextureOptions = Electron.SendSharedTextureOptions;
24573
24842
  type SerialPortRevokedDetails = Electron.SerialPortRevokedDetails;
24574
24843
  type ServiceWorkersRunningStatusChangedEventParams = Electron.ServiceWorkersRunningStatusChangedEventParams;
24575
24844
  type Settings = Electron.Settings;
@@ -24706,6 +24975,12 @@ declare namespace Electron {
24706
24975
  type SharedDictionaryInfo = Electron.SharedDictionaryInfo;
24707
24976
  type SharedDictionaryUsageInfo = Electron.SharedDictionaryUsageInfo;
24708
24977
  type SharedTextureHandle = Electron.SharedTextureHandle;
24978
+ type SharedTextureImported = Electron.SharedTextureImported;
24979
+ type SharedTextureImportedSubtle = Electron.SharedTextureImportedSubtle;
24980
+ type SharedTextureImportTextureInfo = Electron.SharedTextureImportTextureInfo;
24981
+ type SharedTextureSubtle = Electron.SharedTextureSubtle;
24982
+ type SharedTextureSyncToken = Electron.SharedTextureSyncToken;
24983
+ type SharedTextureTransfer = Electron.SharedTextureTransfer;
24709
24984
  type SharedWorkerInfo = Electron.SharedWorkerInfo;
24710
24985
  type SharingItem = Electron.SharingItem;
24711
24986
  type ShortcutDetails = Electron.ShortcutDetails;
@@ -24733,6 +25008,8 @@ declare namespace Electron {
24733
25008
  type IncomingMessage = Electron.IncomingMessage;
24734
25009
  const net: Net;
24735
25010
  type Net = Electron.Net;
25011
+ const parentPort: ParentPort;
25012
+ type ParentPort = Electron.ParentPort;
24736
25013
  const systemPreferences: SystemPreferences;
24737
25014
  type SystemPreferences = Electron.SystemPreferences;
24738
25015
  type AboutPanelOptionsOptions = Electron.AboutPanelOptionsOptions;
@@ -24812,6 +25089,7 @@ declare namespace Electron {
24812
25089
  type HidDeviceRevokedDetails = Electron.HidDeviceRevokedDetails;
24813
25090
  type IgnoreMouseEventsOptions = Electron.IgnoreMouseEventsOptions;
24814
25091
  type ImportCertificateOptions = Electron.ImportCertificateOptions;
25092
+ type ImportSharedTextureOptions = Electron.ImportSharedTextureOptions;
24815
25093
  type Info = Electron.Info;
24816
25094
  type Input = Electron.Input;
24817
25095
  type InsertCSSOptions = Electron.InsertCSSOptions;
@@ -24865,6 +25143,7 @@ declare namespace Electron {
24865
25143
  type Provider = Electron.Provider;
24866
25144
  type PurchaseProductOpts = Electron.PurchaseProductOpts;
24867
25145
  type ReadBookmark = Electron.ReadBookmark;
25146
+ type ReceivedSharedTextureData = Electron.ReceivedSharedTextureData;
24868
25147
  type RegistrationCompletedDetails = Electron.RegistrationCompletedDetails;
24869
25148
  type RelaunchOptions = Electron.RelaunchOptions;
24870
25149
  type RenderProcessGoneEvent = Electron.RenderProcessGoneEvent;
@@ -24880,6 +25159,7 @@ declare namespace Electron {
24880
25159
  type SaveDialogSyncOptions = Electron.SaveDialogSyncOptions;
24881
25160
  type SelectHidDeviceDetails = Electron.SelectHidDeviceDetails;
24882
25161
  type SelectUsbDeviceDetails = Electron.SelectUsbDeviceDetails;
25162
+ type SendSharedTextureOptions = Electron.SendSharedTextureOptions;
24883
25163
  type SerialPortRevokedDetails = Electron.SerialPortRevokedDetails;
24884
25164
  type ServiceWorkersRunningStatusChangedEventParams = Electron.ServiceWorkersRunningStatusChangedEventParams;
24885
25165
  type Settings = Electron.Settings;
@@ -25016,6 +25296,12 @@ declare namespace Electron {
25016
25296
  type SharedDictionaryInfo = Electron.SharedDictionaryInfo;
25017
25297
  type SharedDictionaryUsageInfo = Electron.SharedDictionaryUsageInfo;
25018
25298
  type SharedTextureHandle = Electron.SharedTextureHandle;
25299
+ type SharedTextureImported = Electron.SharedTextureImported;
25300
+ type SharedTextureImportedSubtle = Electron.SharedTextureImportedSubtle;
25301
+ type SharedTextureImportTextureInfo = Electron.SharedTextureImportTextureInfo;
25302
+ type SharedTextureSubtle = Electron.SharedTextureSubtle;
25303
+ type SharedTextureSyncToken = Electron.SharedTextureSyncToken;
25304
+ type SharedTextureTransfer = Electron.SharedTextureTransfer;
25019
25305
  type SharedWorkerInfo = Electron.SharedWorkerInfo;
25020
25306
  type SharingItem = Electron.SharingItem;
25021
25307
  type ShortcutDetails = Electron.ShortcutDetails;
@@ -25090,6 +25376,8 @@ declare namespace Electron {
25090
25376
  const netLog: NetLog;
25091
25377
  type NetLog = Electron.NetLog;
25092
25378
  class Notification extends Electron.Notification {}
25379
+ const parentPort: ParentPort;
25380
+ type ParentPort = Electron.ParentPort;
25093
25381
  const powerMonitor: PowerMonitor;
25094
25382
  type PowerMonitor = Electron.PowerMonitor;
25095
25383
  const powerSaveBlocker: PowerSaveBlocker;
@@ -25106,6 +25394,8 @@ declare namespace Electron {
25106
25394
  type ServiceWorkers = Electron.ServiceWorkers;
25107
25395
  const session: typeof Session;
25108
25396
  type Session = Electron.Session;
25397
+ const sharedTexture: SharedTexture;
25398
+ type SharedTexture = Electron.SharedTexture;
25109
25399
  class ShareMenu extends Electron.ShareMenu {}
25110
25400
  const shell: Shell;
25111
25401
  type Shell = Electron.Shell;
@@ -25214,6 +25504,7 @@ declare namespace Electron {
25214
25504
  type HidDeviceRevokedDetails = Electron.HidDeviceRevokedDetails;
25215
25505
  type IgnoreMouseEventsOptions = Electron.IgnoreMouseEventsOptions;
25216
25506
  type ImportCertificateOptions = Electron.ImportCertificateOptions;
25507
+ type ImportSharedTextureOptions = Electron.ImportSharedTextureOptions;
25217
25508
  type Info = Electron.Info;
25218
25509
  type Input = Electron.Input;
25219
25510
  type InsertCSSOptions = Electron.InsertCSSOptions;
@@ -25267,6 +25558,7 @@ declare namespace Electron {
25267
25558
  type Provider = Electron.Provider;
25268
25559
  type PurchaseProductOpts = Electron.PurchaseProductOpts;
25269
25560
  type ReadBookmark = Electron.ReadBookmark;
25561
+ type ReceivedSharedTextureData = Electron.ReceivedSharedTextureData;
25270
25562
  type RegistrationCompletedDetails = Electron.RegistrationCompletedDetails;
25271
25563
  type RelaunchOptions = Electron.RelaunchOptions;
25272
25564
  type RenderProcessGoneEvent = Electron.RenderProcessGoneEvent;
@@ -25282,6 +25574,7 @@ declare namespace Electron {
25282
25574
  type SaveDialogSyncOptions = Electron.SaveDialogSyncOptions;
25283
25575
  type SelectHidDeviceDetails = Electron.SelectHidDeviceDetails;
25284
25576
  type SelectUsbDeviceDetails = Electron.SelectUsbDeviceDetails;
25577
+ type SendSharedTextureOptions = Electron.SendSharedTextureOptions;
25285
25578
  type SerialPortRevokedDetails = Electron.SerialPortRevokedDetails;
25286
25579
  type ServiceWorkersRunningStatusChangedEventParams = Electron.ServiceWorkersRunningStatusChangedEventParams;
25287
25580
  type Settings = Electron.Settings;
@@ -25418,6 +25711,12 @@ declare namespace Electron {
25418
25711
  type SharedDictionaryInfo = Electron.SharedDictionaryInfo;
25419
25712
  type SharedDictionaryUsageInfo = Electron.SharedDictionaryUsageInfo;
25420
25713
  type SharedTextureHandle = Electron.SharedTextureHandle;
25714
+ type SharedTextureImported = Electron.SharedTextureImported;
25715
+ type SharedTextureImportedSubtle = Electron.SharedTextureImportedSubtle;
25716
+ type SharedTextureImportTextureInfo = Electron.SharedTextureImportTextureInfo;
25717
+ type SharedTextureSubtle = Electron.SharedTextureSubtle;
25718
+ type SharedTextureSyncToken = Electron.SharedTextureSyncToken;
25719
+ type SharedTextureTransfer = Electron.SharedTextureTransfer;
25421
25720
  type SharedWorkerInfo = Electron.SharedWorkerInfo;
25422
25721
  type SharingItem = Electron.SharingItem;
25423
25722
  type ShortcutDetails = Electron.ShortcutDetails;
@@ -25463,6 +25762,7 @@ declare namespace Electron {
25463
25762
  const safeStorage: SafeStorage;
25464
25763
  const screen: Screen;
25465
25764
  const session: typeof Session;
25765
+ const sharedTexture: SharedTexture;
25466
25766
  const shell: Shell;
25467
25767
  const systemPreferences: SystemPreferences;
25468
25768
  const utilityProcess: typeof UtilityProcess;
package/dist/version.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "electronVersion": "39.1.2",
3
- "extractedAt": "2025-12-24T02:07:39.690Z"
2
+ "electronVersion": "40.0.0-beta.4",
3
+ "extractedAt": "2025-12-24T03:15:00.486Z"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "electron-types",
3
- "version": "39.1.2",
3
+ "version": "40.0.0-beta.4",
4
4
  "type": "module",
5
5
  "description": "TypeScript type definitions extracted from the electron package",
6
6
  "types": "./dist/electron.d.ts",