Quellcode durchsuchen

* LibElectron added

Michaël Van Canneyt vor 3 Jahren
Ursprung
Commit
32d76c84ee
1 geänderte Dateien mit 4853 neuen und 0 gelöschten Zeilen
  1. 4853 0
      packages/electron/libelectron.pas

+ 4853 - 0
packages/electron/libelectron.pas

@@ -0,0 +1,4853 @@
+{
+    This file is part of the Pas2JS run time library.
+    Copyright (c) 2022- by the Pas2JS development team.
+
+    Electron API description. Mostly autogenerated using dts2pas
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+Unit libelectron;
+
+{$MODE ObjFPC}
+{$H+}
+{$modeswitch externalclass}
+
+interface
+
+uses SysUtils, JS, Web, nodejs, node.events;
+
+{$INTERFACES CORBA}
+
+Type
+  // Forward class definitions
+  TApp = Class;
+  TAutoUpdater = Class;
+  TBluetoothDevice = Class;
+  TCertificate = Class;
+  TCertificatePrincipal = Class;
+  TClipboard = Class;
+  TContentTracing = Class;
+  TContextBridge = Class;
+  TCookie = Class;
+  TCPUUsage = Class;
+  TCrashReport = Class;
+  TCrashReporter = Class;
+  TCustomScheme = Class;
+  TDesktopCapturer = Class;
+  TDesktopCapturerSource = Class;
+  TDialog = Class;
+  TDisplay = Class;
+  TEvent = Class;
+  TExtension = Class;
+  TExtensionInfo = Class;
+  TFileFilter = Class;
+  TFilePathWithHeaders = Class;
+  TGlobalShortcut = Class;
+  TGPUFeatureStatus = Class;
+  THIDDevice = Class;
+  TInAppPurchase = Class;
+  TInputEvent = Class;
+  TIOCounters = Class;
+  TIpcMain = Class;
+  TIpcMainEvent = Class;
+  TIpcMainInvokeEvent = Class;
+  TIpcRenderer = Class;
+  TIpcRendererEvent = Class;
+  TJumpListCategory = Class;
+  TJumpListItem = Class;
+  TKeyboardEvent = Class;
+  TKeyboardInputEvent = Class;
+  TMemoryInfo = Class;
+  TMemoryUsageDetails = Class;
+  TMimeTypedBuffer = Class;
+  TMouseInputEvent = Class;
+  TMouseWheelInputEvent = Class;
+  TNativeTheme = Class;
+  TNet = Class;
+  TNetLog = Class;
+  TNewWindowWebContentsEvent = Class;
+  TNotificationAction = Class;
+  TNotificationResponse = Class;
+  TPaymentDiscount = Class;
+  TPoint = Class;
+  TPostBody = Class;
+  TPowerMonitor = Class;
+  TPowerSaveBlocker = Class;
+  TPrinterInfo = Class;
+  TProcessMemoryInfo = Class;
+  TProcessMetric = Class;
+  TProduct = Class;
+  TProductDiscount = Class;
+  TProductSubscriptionPeriod = Class;
+  TProtocol = Class;
+  TProtocolRequest = Class;
+  TProtocolResponse = Class;
+  TProtocolResponseUploadData = Class;
+  TRectangle = Class;
+  TReferrer = Class;
+  TSafeStorage = Class;
+  TScreen = Class;
+  TScrubberItem = Class;
+  TSegmentedControlSegment = Class;
+  TSerialPort = Class;
+  TServiceWorkerInfo = Class;
+  TSharedWorkerInfo = Class;
+  TSharingItem = Class;
+  TShell = Class;
+  TShortcutDetails = Class;
+  TSize = Class;
+  TSystemPreferences = Class;
+  TTask = Class;
+  TThumbarButton = Class;
+  TTraceCategoriesAndOptions = Class;
+  TTraceConfig = Class;
+  TTransaction = Class;
+  TUploadData = Class;
+  TUploadFile = Class;
+  TUploadRawData = Class;
+  TUserDefaultTypes = Class;
+  TWebFrame = Class;
+  TWebRequestFilter = Class;
+  TWebSource = Class;
+  TWebviewTag = Class;
+  TAboutPanelOptionsOptions = Class;
+  TAddRepresentationOptions = Class;
+  TAnimationSettings = Class;
+  TAppDetailsOptions = Class;
+  TApplicationInfoForProtocolReturnValue = Class;
+  TAuthenticationResponseDetails = Class;
+  TAuthInfo = Class;
+  TAutoResizeOptions = Class;
+  TBeforeSendResponse = Class;
+  TBitmapOptions = Class;
+  TBlinkMemoryInfo = Class;
+  TBrowserViewConstructorOptions = Class;
+  TBrowserWindowConstructorOptions = Class;
+  TCertificateTrustDialogOptions = Class;
+  TClearCodeCachesOptions = Class;
+  TClearStorageDataOptions = Class;
+  TClientRequestConstructorOptions = Class;
+  TConfig = Class;
+  TConfigureHostResolverOptions = Class;
+  TConsoleMessageEvent = Class;
+  TContextMenuEvent = Class;
+  TContextMenuParams = Class;
+  TContinueActivityDetails = Class;
+  TCookiesGetFilter = Class;
+  TCookiesSetDetails = Class;
+  TCrashReporterStartOptions = Class;
+  TCreateFromBitmapOptions = Class;
+  TCreateFromBufferOptions = Class;
+  TCreateInterruptedDownloadOptions = Class;
+  TData = Class;
+  TDetails = Class;
+  TDevicePermissionHandlerHandlerDetails = Class;
+  TDidChangeThemeColorEvent = Class;
+  TDidCreateWindowDetails = Class;
+  TDidFailLoadEvent = Class;
+  TDidFrameFinishLoadEvent = Class;
+  TDidFrameNavigateEvent = Class;
+  TDidNavigateEvent = Class;
+  TDidNavigateInPageEvent = Class;
+  TDidRedirectNavigationEvent = Class;
+  TDidStartNavigationEvent = Class;
+  TDisplayBalloonOptions = Class;
+  TEnableNetworkEmulationOptions = Class;
+  TFeedURLOptions = Class;
+  TFileIconOptions = Class;
+  TFindInPageOptions = Class;
+  TFocusOptions = Class;
+  TFoundInPageEvent = Class;
+  TFrameCreatedDetails = Class;
+  TFromPartitionOptions = Class;
+  THandlerDetails = Class;
+  THeadersReceivedResponse = Class;
+  THeapStatistics = Class;
+  THidDeviceAddedDetails = Class;
+  THidDeviceRemovedDetails = Class;
+  TIgnoreMouseEventsOptions = Class;
+  TImportCertificateOptions = Class;
+  TInfo = Class;
+  TInput = Class;
+  TInsertCSSOptions = Class;
+  TIpcMessageEvent = Class;
+  TItem = Class;
+  TJumpListSettings = Class;
+  TLoadCommitEvent = Class;
+  TLoadExtensionOptions = Class;
+  TLoadFileOptions = Class;
+  TLoadURLOptions = Class;
+  TLoginItemSettings = Class;
+  TLoginItemSettingsOptions = Class;
+  TMenuItemConstructorOptions = Class;
+  TMessageBoxOptions = Class;
+  TMessageBoxReturnValue = Class;
+  TMessageBoxSyncOptions = Class;
+  TMessageDetails = Class;
+  TMessageEvent = Class;
+  TMoveToApplicationsFolderOptions = Class;
+  TNewWindowEvent = Class;
+  TNotificationConstructorOptions = Class;
+  TOnBeforeRedirectListenerDetails = Class;
+  TOnBeforeRequestListenerDetails = Class;
+  TOnBeforeSendHeadersListenerDetails = Class;
+  TOnCompletedListenerDetails = Class;
+  TOnErrorOccurredListenerDetails = Class;
+  TOnHeadersReceivedListenerDetails = Class;
+  TOnResponseStartedListenerDetails = Class;
+  TOnSendHeadersListenerDetails = Class;
+  TOpenDevToolsOptions = Class;
+  TOpenDialogOptions = Class;
+  TOpenDialogReturnValue = Class;
+  TOpenDialogSyncOptions = Class;
+  TOpenExternalOptions = Class;
+  TOptions = Class;
+  TPageFaviconUpdatedEvent = Class;
+  TPageTitleUpdatedEvent = Class;
+  TParameters = Class;
+  TPayment = Class;
+  TPermissionCheckHandlerHandlerDetails = Class;
+  TPermissionRequestHandlerHandlerDetails = Class;
+  TPluginCrashedEvent = Class;
+  TPopupOptions = Class;
+  TPreconnectOptions = Class;
+  TPrintToPDFOptions = Class;
+  TPrivileges = Class;
+  TProgressBarOptions = Class;
+  TProvider = Class;
+  TReadBookmark = Class;
+  TRegistrationCompletedDetails = Class;
+  TRelaunchOptions = Class;
+  TRenderProcessGoneDetails = Class;
+  TRequest = Class;
+  TResizeOptions = Class;
+  TResourceUsage = Class;
+  TResponse = Class;
+  TResult = Class;
+  TSaveDialogOptions = Class;
+  TSaveDialogReturnValue = Class;
+  TSaveDialogSyncOptions = Class;
+  TSelectHidDeviceDetails = Class;
+  TSettings = Class;
+  TSourcesOptions = Class;
+  TSSLConfigConfig = Class;
+  TStartLoggingOptions = Class;
+  TSystemMemoryInfo = Class;
+  TTitleOptions = Class;
+  TToBitmapOptions = Class;
+  TToDataURLOptions = Class;
+  TToPNGOptions = Class;
+  TTouchBarButtonConstructorOptions = Class;
+  TTouchBarColorPickerConstructorOptions = Class;
+  TTouchBarConstructorOptions = Class;
+  TTouchBarGroupConstructorOptions = Class;
+  TTouchBarLabelConstructorOptions = Class;
+  TTouchBarPopoverConstructorOptions = Class;
+  TTouchBarScrubberConstructorOptions = Class;
+  TTouchBarSegmentedControlConstructorOptions = Class;
+  TTouchBarSliderConstructorOptions = Class;
+  TTouchBarSpacerConstructorOptions = Class;
+  TTraceBufferUsageReturnValue = Class;
+  TUpdateTargetUrlEvent = Class;
+  TUploadProgress = Class;
+  TVisibleOnAllWorkspacesOptions = Class;
+  TWebContentsPrintOptions = Class;
+  TWebviewTagPrintOptions = Class;
+  TWillNavigateEvent = Class;
+  TWillResizeDetails = Class;
+  TEditFlags = Class;
+  TFoundInPageResult = Class;
+  TLaunchItems = Class;
+  TMargins = Class;
+  TMediaFlags = Class;
+  TPageRanges = Class;
+  TParams = Class;
+  TTitleBarOverlay = Class;
+  TWebPreferences = Class;
+  TDefaultFontFamily = Class;
+  TRemoteMainInterface = Class;
+  // Forward class definitions
+  TAccelerator = Class;
+  TBrowserView = Class;
+  TBrowserWindow = Class;
+  TBrowserWindowProxy = Class;
+  TClientRequest = Class;
+  TCommandLine = Class;
+  TCookies = Class;
+  TDebugger = Class;
+  TDock = Class;
+  TDownloadItem = Class;
+  TIncomingMessage = Class;
+  TMenu = Class;
+  TMenuItem = Class;
+  TMessageChannelMain = Class;
+  TMessagePortMain = Class;
+  TNativeImage = Class;
+  TNotification = Class;
+  TServiceWorkers = Class;
+  TSession = Class;
+  TShareMenu = Class;
+  TTouchBar = Class;
+  TTouchBarButton = Class;
+  TTouchBarColorPicker = Class;
+  TTouchBarGroup = Class;
+  TTouchBarLabel = Class;
+  TTouchBarOtherItemsProxy = Class;
+  TTouchBarPopover = Class;
+  TTouchBarScrubber = Class;
+  TTouchBarSegmentedControl = Class;
+  TTouchBarSlider = Class;
+  TTouchBarSpacer = Class;
+  TTray = Class;
+  TWebContents = Class;
+  TWebFrameMain = Class;
+  TWebRequest = Class;
+  // Forward class definitions
+  TMainExports = Class;
+  TCrossProcessExports = Class;
+
+  // Class of pointers
+
+  TAppClass = class of TApp;
+  TAutoUpdaterClass = class of TAutoUpdater;
+  TBluetoothDeviceClass = class of TBluetoothDevice;
+  TCertificateClass = class of TCertificate;
+  TCertificatePrincipalClass = class of TCertificatePrincipal;
+  TClipboardClass = class of TClipboard;
+  TContentTracingClass = class of TContentTracing;
+  TContextBridgeClass = class of TContextBridge;
+  TCookieClass = class of TCookie;
+  TCPUUsageClass = class of TCPUUsage;
+  TCrashReportClass = class of TCrashReport;
+  TCrashReporterClass = class of TCrashReporter;
+  TCustomSchemeClass = class of TCustomScheme;
+  TDesktopCapturerClass = class of TDesktopCapturer;
+  TDesktopCapturerSourceClass = class of TDesktopCapturerSource;
+  TDialogClass = class of TDialog;
+  TDisplayClass = class of TDisplay;
+  TEventClass = class of TEvent;
+  TExtensionClass = class of TExtension;
+  TExtensionInfoClass = class of TExtensionInfo;
+  TFileFilterClass = class of TFileFilter;
+  TFilePathWithHeadersClass = class of TFilePathWithHeaders;
+  TGlobalShortcutClass = class of TGlobalShortcut;
+  TGPUFeatureStatusClass = class of TGPUFeatureStatus;
+  THIDDeviceClass = class of THIDDevice;
+  TInAppPurchaseClass = class of TInAppPurchase;
+  TInputEventClass = class of TInputEvent;
+  TIOCountersClass = class of TIOCounters;
+  TIpcMainClass = class of TIpcMain;
+  TIpcMainEventClass = class of TIpcMainEvent;
+  TIpcMainInvokeEventClass = class of TIpcMainInvokeEvent;
+  TIpcRendererClass = class of TIpcRenderer;
+  TIpcRendererEventClass = class of TIpcRendererEvent;
+  TJumpListCategoryClass = class of TJumpListCategory;
+  TJumpListItemClass = class of TJumpListItem;
+  TKeyboardEventClass = class of TKeyboardEvent;
+  TKeyboardInputEventClass = class of TKeyboardInputEvent;
+  TMemoryInfoClass = class of TMemoryInfo;
+  TMemoryUsageDetailsClass = class of TMemoryUsageDetails;
+  TMimeTypedBufferClass = class of TMimeTypedBuffer;
+  TMouseInputEventClass = class of TMouseInputEvent;
+  TMouseWheelInputEventClass = class of TMouseWheelInputEvent;
+  TNativeThemeClass = class of TNativeTheme;
+  TNetClass = class of TNet;
+  TNetLogClass = class of TNetLog;
+  TNewWindowWebContentsEventClass = class of TNewWindowWebContentsEvent;
+  TNotificationActionClass = class of TNotificationAction;
+  TNotificationResponseClass = class of TNotificationResponse;
+  TPaymentDiscountClass = class of TPaymentDiscount;
+  TPointClass = class of TPoint;
+  TPostBodyClass = class of TPostBody;
+  TPowerMonitorClass = class of TPowerMonitor;
+  TPowerSaveBlockerClass = class of TPowerSaveBlocker;
+  TPrinterInfoClass = class of TPrinterInfo;
+  TProcessMemoryInfoClass = class of TProcessMemoryInfo;
+  TProcessMetricClass = class of TProcessMetric;
+  TProductClass = class of TProduct;
+  TProductDiscountClass = class of TProductDiscount;
+  TProductSubscriptionPeriodClass = class of TProductSubscriptionPeriod;
+  TProtocolClass = class of TProtocol;
+  TProtocolRequestClass = class of TProtocolRequest;
+  TProtocolResponseClass = class of TProtocolResponse;
+  TProtocolResponseUploadDataClass = class of TProtocolResponseUploadData;
+  TRectangleClass = class of TRectangle;
+  TReferrerClass = class of TReferrer;
+  TSafeStorageClass = class of TSafeStorage;
+  TScreenClass = class of TScreen;
+  TScrubberItemClass = class of TScrubberItem;
+  TSegmentedControlSegmentClass = class of TSegmentedControlSegment;
+  TSerialPortClass = class of TSerialPort;
+  TServiceWorkerInfoClass = class of TServiceWorkerInfo;
+  TSharedWorkerInfoClass = class of TSharedWorkerInfo;
+  TSharingItemClass = class of TSharingItem;
+  TShellClass = class of TShell;
+  TShortcutDetailsClass = class of TShortcutDetails;
+  TSizeClass = class of TSize;
+  TSystemPreferencesClass = class of TSystemPreferences;
+  TTaskClass = class of TTask;
+  TThumbarButtonClass = class of TThumbarButton;
+  TTraceCategoriesAndOptionsClass = class of TTraceCategoriesAndOptions;
+  TTraceConfigClass = class of TTraceConfig;
+  TTransactionClass = class of TTransaction;
+  TUploadDataClass = class of TUploadData;
+  TUploadFileClass = class of TUploadFile;
+  TUploadRawDataClass = class of TUploadRawData;
+  TUserDefaultTypesClass = class of TUserDefaultTypes;
+  TWebFrameClass = class of TWebFrame;
+  TWebRequestFilterClass = class of TWebRequestFilter;
+  TWebSourceClass = class of TWebSource;
+  TWebviewTagClass = class of TWebviewTag;
+  TAboutPanelOptionsOptionsClass = class of TAboutPanelOptionsOptions;
+  TAddRepresentationOptionsClass = class of TAddRepresentationOptions;
+  TAnimationSettingsClass = class of TAnimationSettings;
+  TAppDetailsOptionsClass = class of TAppDetailsOptions;
+  TApplicationInfoForProtocolReturnValueClass = class of TApplicationInfoForProtocolReturnValue;
+  TAuthenticationResponseDetailsClass = class of TAuthenticationResponseDetails;
+  TAuthInfoClass = class of TAuthInfo;
+  TAutoResizeOptionsClass = class of TAutoResizeOptions;
+  TBeforeSendResponseClass = class of TBeforeSendResponse;
+  TBitmapOptionsClass = class of TBitmapOptions;
+  TBlinkMemoryInfoClass = class of TBlinkMemoryInfo;
+  TBrowserViewConstructorOptionsClass = class of TBrowserViewConstructorOptions;
+  TBrowserWindowConstructorOptionsClass = class of TBrowserWindowConstructorOptions;
+  TCertificateTrustDialogOptionsClass = class of TCertificateTrustDialogOptions;
+  TClearCodeCachesOptionsClass = class of TClearCodeCachesOptions;
+  TClearStorageDataOptionsClass = class of TClearStorageDataOptions;
+  TClientRequestConstructorOptionsClass = class of TClientRequestConstructorOptions;
+  TConfigClass = class of TConfig;
+  TConfigureHostResolverOptionsClass = class of TConfigureHostResolverOptions;
+  TConsoleMessageEventClass = class of TConsoleMessageEvent;
+  TContextMenuEventClass = class of TContextMenuEvent;
+  TContextMenuParamsClass = class of TContextMenuParams;
+  TContinueActivityDetailsClass = class of TContinueActivityDetails;
+  TCookiesGetFilterClass = class of TCookiesGetFilter;
+  TCookiesSetDetailsClass = class of TCookiesSetDetails;
+  TCrashReporterStartOptionsClass = class of TCrashReporterStartOptions;
+  TCreateFromBitmapOptionsClass = class of TCreateFromBitmapOptions;
+  TCreateFromBufferOptionsClass = class of TCreateFromBufferOptions;
+  TCreateInterruptedDownloadOptionsClass = class of TCreateInterruptedDownloadOptions;
+  TDataClass = class of TData;
+  TDetailsClass = class of TDetails;
+  TDevicePermissionHandlerHandlerDetailsClass = class of TDevicePermissionHandlerHandlerDetails;
+  TDidChangeThemeColorEventClass = class of TDidChangeThemeColorEvent;
+  TDidCreateWindowDetailsClass = class of TDidCreateWindowDetails;
+  TDidFailLoadEventClass = class of TDidFailLoadEvent;
+  TDidFrameFinishLoadEventClass = class of TDidFrameFinishLoadEvent;
+  TDidFrameNavigateEventClass = class of TDidFrameNavigateEvent;
+  TDidNavigateEventClass = class of TDidNavigateEvent;
+  TDidNavigateInPageEventClass = class of TDidNavigateInPageEvent;
+  TDidRedirectNavigationEventClass = class of TDidRedirectNavigationEvent;
+  TDidStartNavigationEventClass = class of TDidStartNavigationEvent;
+  TDisplayBalloonOptionsClass = class of TDisplayBalloonOptions;
+  TEnableNetworkEmulationOptionsClass = class of TEnableNetworkEmulationOptions;
+  TFeedURLOptionsClass = class of TFeedURLOptions;
+  TFileIconOptionsClass = class of TFileIconOptions;
+  TFindInPageOptionsClass = class of TFindInPageOptions;
+  TFocusOptionsClass = class of TFocusOptions;
+  TFoundInPageEventClass = class of TFoundInPageEvent;
+  TFrameCreatedDetailsClass = class of TFrameCreatedDetails;
+  TFromPartitionOptionsClass = class of TFromPartitionOptions;
+  THandlerDetailsClass = class of THandlerDetails;
+  THeadersReceivedResponseClass = class of THeadersReceivedResponse;
+  THeapStatisticsClass = class of THeapStatistics;
+  THidDeviceAddedDetailsClass = class of THidDeviceAddedDetails;
+  THidDeviceRemovedDetailsClass = class of THidDeviceRemovedDetails;
+  TIgnoreMouseEventsOptionsClass = class of TIgnoreMouseEventsOptions;
+  TImportCertificateOptionsClass = class of TImportCertificateOptions;
+  TInfoClass = class of TInfo;
+  TInputClass = class of TInput;
+  TInsertCSSOptionsClass = class of TInsertCSSOptions;
+  TIpcMessageEventClass = class of TIpcMessageEvent;
+  TItemClass = class of TItem;
+  TJumpListSettingsClass = class of TJumpListSettings;
+  TLoadCommitEventClass = class of TLoadCommitEvent;
+  TLoadExtensionOptionsClass = class of TLoadExtensionOptions;
+  TLoadFileOptionsClass = class of TLoadFileOptions;
+  TLoadURLOptionsClass = class of TLoadURLOptions;
+  TLoginItemSettingsClass = class of TLoginItemSettings;
+  TLoginItemSettingsOptionsClass = class of TLoginItemSettingsOptions;
+  TMenuItemConstructorOptionsClass = class of TMenuItemConstructorOptions;
+  TMessageBoxOptionsClass = class of TMessageBoxOptions;
+  TMessageBoxReturnValueClass = class of TMessageBoxReturnValue;
+  TMessageBoxSyncOptionsClass = class of TMessageBoxSyncOptions;
+  TMessageDetailsClass = class of TMessageDetails;
+  TMessageEventClass = class of TMessageEvent;
+  TMoveToApplicationsFolderOptionsClass = class of TMoveToApplicationsFolderOptions;
+  TNewWindowEventClass = class of TNewWindowEvent;
+  TNotificationConstructorOptionsClass = class of TNotificationConstructorOptions;
+  TOnBeforeRedirectListenerDetailsClass = class of TOnBeforeRedirectListenerDetails;
+  TOnBeforeRequestListenerDetailsClass = class of TOnBeforeRequestListenerDetails;
+  TOnBeforeSendHeadersListenerDetailsClass = class of TOnBeforeSendHeadersListenerDetails;
+  TOnCompletedListenerDetailsClass = class of TOnCompletedListenerDetails;
+  TOnErrorOccurredListenerDetailsClass = class of TOnErrorOccurredListenerDetails;
+  TOnHeadersReceivedListenerDetailsClass = class of TOnHeadersReceivedListenerDetails;
+  TOnResponseStartedListenerDetailsClass = class of TOnResponseStartedListenerDetails;
+  TOnSendHeadersListenerDetailsClass = class of TOnSendHeadersListenerDetails;
+  TOpenDevToolsOptionsClass = class of TOpenDevToolsOptions;
+  TOpenDialogOptionsClass = class of TOpenDialogOptions;
+  TOpenDialogReturnValueClass = class of TOpenDialogReturnValue;
+  TOpenDialogSyncOptionsClass = class of TOpenDialogSyncOptions;
+  TOpenExternalOptionsClass = class of TOpenExternalOptions;
+  TOptionsClass = class of TOptions;
+  TPageFaviconUpdatedEventClass = class of TPageFaviconUpdatedEvent;
+  TPageTitleUpdatedEventClass = class of TPageTitleUpdatedEvent;
+  TParametersClass = class of TParameters;
+  TPaymentClass = class of TPayment;
+  TPermissionCheckHandlerHandlerDetailsClass = class of TPermissionCheckHandlerHandlerDetails;
+  TPermissionRequestHandlerHandlerDetailsClass = class of TPermissionRequestHandlerHandlerDetails;
+  TPluginCrashedEventClass = class of TPluginCrashedEvent;
+  TPopupOptionsClass = class of TPopupOptions;
+  TPreconnectOptionsClass = class of TPreconnectOptions;
+  TPrintToPDFOptionsClass = class of TPrintToPDFOptions;
+  TPrivilegesClass = class of TPrivileges;
+  TProgressBarOptionsClass = class of TProgressBarOptions;
+  TProviderClass = class of TProvider;
+  TReadBookmarkClass = class of TReadBookmark;
+  TRegistrationCompletedDetailsClass = class of TRegistrationCompletedDetails;
+  TRelaunchOptionsClass = class of TRelaunchOptions;
+  TRenderProcessGoneDetailsClass = class of TRenderProcessGoneDetails;
+  TRequestClass = class of TRequest;
+  TResizeOptionsClass = class of TResizeOptions;
+  TResourceUsageClass = class of TResourceUsage;
+  TResponseClass = class of TResponse;
+  TResultClass = class of TResult;
+  TSaveDialogOptionsClass = class of TSaveDialogOptions;
+  TSaveDialogReturnValueClass = class of TSaveDialogReturnValue;
+  TSaveDialogSyncOptionsClass = class of TSaveDialogSyncOptions;
+  TSelectHidDeviceDetailsClass = class of TSelectHidDeviceDetails;
+  TSettingsClass = class of TSettings;
+  TSourcesOptionsClass = class of TSourcesOptions;
+  TSSLConfigConfigClass = class of TSSLConfigConfig;
+  TStartLoggingOptionsClass = class of TStartLoggingOptions;
+  TSystemMemoryInfoClass = class of TSystemMemoryInfo;
+  TTitleOptionsClass = class of TTitleOptions;
+  TToBitmapOptionsClass = class of TToBitmapOptions;
+  TToDataURLOptionsClass = class of TToDataURLOptions;
+  TToPNGOptionsClass = class of TToPNGOptions;
+  TTouchBarButtonConstructorOptionsClass = class of TTouchBarButtonConstructorOptions;
+  TTouchBarColorPickerConstructorOptionsClass = class of TTouchBarColorPickerConstructorOptions;
+  TTouchBarConstructorOptionsClass = class of TTouchBarConstructorOptions;
+  TTouchBarGroupConstructorOptionsClass = class of TTouchBarGroupConstructorOptions;
+  TTouchBarLabelConstructorOptionsClass = class of TTouchBarLabelConstructorOptions;
+  TTouchBarPopoverConstructorOptionsClass = class of TTouchBarPopoverConstructorOptions;
+  TTouchBarScrubberConstructorOptionsClass = class of TTouchBarScrubberConstructorOptions;
+  TTouchBarSegmentedControlConstructorOptionsClass = class of TTouchBarSegmentedControlConstructorOptions;
+  TTouchBarSliderConstructorOptionsClass = class of TTouchBarSliderConstructorOptions;
+  TTouchBarSpacerConstructorOptionsClass = class of TTouchBarSpacerConstructorOptions;
+  TTraceBufferUsageReturnValueClass = class of TTraceBufferUsageReturnValue;
+  TUpdateTargetUrlEventClass = class of TUpdateTargetUrlEvent;
+  TUploadProgressClass = class of TUploadProgress;
+  TVisibleOnAllWorkspacesOptionsClass = class of TVisibleOnAllWorkspacesOptions;
+  TWebContentsPrintOptionsClass = class of TWebContentsPrintOptions;
+  TWebviewTagPrintOptionsClass = class of TWebviewTagPrintOptions;
+  TWillNavigateEventClass = class of TWillNavigateEvent;
+  TWillResizeDetailsClass = class of TWillResizeDetails;
+  TEditFlagsClass = class of TEditFlags;
+  TFoundInPageResultClass = class of TFoundInPageResult;
+  TLaunchItemsClass = class of TLaunchItems;
+  TMarginsClass = class of TMargins;
+  TMediaFlagsClass = class of TMediaFlags;
+  TPageRangesClass = class of TPageRanges;
+  TParamsClass = class of TParams;
+  TTitleBarOverlayClass = class of TTitleBarOverlay;
+  TWebPreferencesClass = class of TWebPreferences;
+  TDefaultFontFamilyClass = class of TDefaultFontFamily;
+  TRemoteMainInterfaceClass = class of TRemoteMainInterface;
+  // Forward class definitions
+  TAcceleratorClass = class of TAccelerator;
+  TBrowserViewClass = class of TBrowserView;
+  TBrowserWindowClass = class of TBrowserWindow;
+  TBrowserWindowProxyClass = class of TBrowserWindowProxy;
+  TClientRequestClass = class of TClientRequest;
+  TCommandLineClass = class of TCommandLine;
+  TCookiesClass = class of TCookies;
+  TDebuggerClass = class of TDebugger;
+  TDockClass = class of TDock;
+  TDownloadItemClass = class of TDownloadItem;
+  TIncomingMessageClass = class of TIncomingMessage;
+  TMenuClass = class of TMenu;
+  TMenuItemClass = class of TMenuItem;
+  TMessageChannelMainClass = class of TMessageChannelMain;
+  TMessagePortMainClass = class of TMessagePortMain;
+  TNativeImageClass = class of TNativeImage;
+  TNotificationClass = class of TNotification;
+  TServiceWorkersClass = class of TServiceWorkers;
+  TSessionClass = class of TSession;
+  TShareMenuClass = class of TShareMenu;
+  TTouchBarClass = class of TTouchBar;
+  TTouchBarButtonClass = class of TTouchBarButton;
+  TTouchBarColorPickerClass = class of TTouchBarColorPicker;
+  TTouchBarGroupClass = class of TTouchBarGroup;
+  TTouchBarLabelClass = class of TTouchBarLabel;
+  TTouchBarOtherItemsProxyClass = class of TTouchBarOtherItemsProxy;
+  TTouchBarPopoverClass = class of TTouchBarPopover;
+  TTouchBarScrubberClass = class of TTouchBarScrubber;
+  TTouchBarSegmentedControlClass = class of TTouchBarSegmentedControl;
+  TTouchBarSliderClass = class of TTouchBarSlider;
+  TTouchBarSpacerClass = class of TTouchBarSpacer;
+  TTrayClass = class of TTray;
+  TWebContentsClass = class of TWebContents;
+  TWebFrameMainClass = class of TWebFrameMain;
+  TWebRequestClass = class of TWebRequest;
+  // Forward class definitions
+
+
+  // End of forward
+
+  TAccelerator = class external name 'Accelerator' (TJSString)
+  end;
+
+  TBrowserView = class external name 'BrowserView' (TJSObject)
+  Public
+    Constructor New(options : TBrowserViewConstructorOptions); overload;
+    Constructor New; overload;
+    Function getBounds: TRectangle;
+    Procedure setAutoResize(options : TAutoResizeOptions);
+    Procedure setBackgroundColor(color : string);
+    Procedure setBounds(bounds : TRectangle);
+    webContents : TWebContents;
+  end;
+
+  TBrowserWindow_on_listener = Procedure (event : TEvent; isAlwaysOnTop : boolean);
+  TBrowserWindow_once_listener = Procedure (event : TEvent; isAlwaysOnTop : boolean);
+  TBrowserWindow_addListener_listener = Procedure (event : TEvent; isAlwaysOnTop : boolean);
+  TBrowserWindow_removeListener_listener = Procedure (event : TEvent; isAlwaysOnTop : boolean);
+
+  TBrowserWindow_getAllWindows_Result = array of TBrowserWindow;
+  TBrowserWindow_getBrowserViews_Result = array of TBrowserView;
+  TBrowserWindow_getChildWindows_Result = array of TBrowserWindow;
+  TBrowserWindow_getContentSize_Result = array of Double;
+  TBrowserWindow_getMaximumSize_Result = array of Double;
+  TBrowserWindow_getMinimumSize_Result = array of Double;
+  TBrowserWindow_getPosition_Result = array of Double;
+  TBrowserWindow_getSize_Result = array of Double;
+  TBrowserWindow_hookWindowMessage_callback = Procedure (wParam : JSValue; lParam : JSValue);
+
+  TBrowserWindow = class external name 'BrowserWindow' (TNJSEventEmitter)
+  Private
+    Fid : Double; external name 'id';
+    FwebContents : TWebContents; external name 'webContents';
+  Public
+    Constructor New(options : TBrowserWindowConstructorOptions); overload;
+    Constructor New; overload;
+    Function &on(event : String; listener : TBrowserWindow_on_listener): TBrowserWindow; overload;
+    Function &on(event : String; listener : TJSFunction): TBrowserWindow; overload;
+    Procedure addBrowserView(browserView : TBrowserView);
+    Function addListener(event : String; listener : TJSFunction): TBrowserWindow; overload;
+    Function addListener(event : String; listener : TBrowserWindow_addListener_listener): TBrowserWindow; overload;
+    Procedure addTabbedWindow(browserWindow : TBrowserWindow);
+    Procedure blur;
+    Procedure blurWebView;
+    Function capturePage(rect : TRectangle): TJSPromise; overload;
+    Function capturePage: TJSPromise; overload;
+    Procedure center;
+    Procedure close;
+    Procedure closeFilePreview;
+    Procedure destroy;
+    Procedure flashFrame(flag : boolean);
+    Procedure focus;
+    Procedure focusOnWebView;
+    Function fromBrowserView(browserView : TBrowserView): jsvalue;
+    Function fromId(id : Double): jsvalue;
+    Function fromWebContents(webContents : TWebContents): jsvalue;
+    Function getAllWindows: TBrowserWindow_getAllWindows_Result;
+    Function getBackgroundColor: string;
+    Function getBounds: TRectangle;
+    Function getBrowserView: jsvalue;
+    Function getBrowserViews: TBrowserWindow_getBrowserViews_Result;
+    Function getChildWindows: TBrowserWindow_getChildWindows_Result;
+    Function getContentBounds: TRectangle;
+    Function getContentSize: TBrowserWindow_getContentSize_Result;
+    Function getFocusedWindow: jsvalue;
+    Function getMaximumSize: TBrowserWindow_getMaximumSize_Result;
+    Function getMediaSourceId: string;
+    Function getMinimumSize: TBrowserWindow_getMinimumSize_Result;
+    Function getNativeWindowHandle: TNJSBuffer;
+    Function getNormalBounds: TRectangle;
+    Function getOpacity: Double;
+    Function getParentWindow: jsvalue;
+    Function getPosition: TBrowserWindow_getPosition_Result;
+    Function getRepresentedFilename: string;
+    Function getSize: TBrowserWindow_getSize_Result;
+    Function getTitle: string;
+    Function getTrafficLightPosition: TPoint;
+    Function hasShadow: boolean;
+    Procedure hide;
+    Procedure hookWindowMessage(message : Double; callback : TBrowserWindow_hookWindowMessage_callback);
+    Function isAlwaysOnTop: boolean;
+    Function isClosable: boolean;
+    Function isDestroyed: boolean;
+    Function isDocumentEdited: boolean;
+    Function isEnabled: boolean;
+    Procedure isFocusable;
+    Function isFocused: boolean;
+    Function isFullScreen: boolean;
+    Function isFullScreenable: boolean;
+    Function isKiosk: boolean;
+    Function isMaximizable: boolean;
+    Function isMaximized: boolean;
+    Function isMenuBarAutoHide: boolean;
+    Function isMenuBarVisible: boolean;
+    Function isMinimizable: boolean;
+    Function isMinimized: boolean;
+    Function isModal: boolean;
+    Function isMovable: boolean;
+    Function isNormal: boolean;
+    Function isResizable: boolean;
+    Function isSimpleFullScreen: boolean;
+    Function isTabletMode: boolean;
+    Function isVisible: boolean;
+    Function isVisibleOnAllWorkspaces: boolean;
+    Function isWindowMessageHooked(message : Double): boolean;
+    Function loadFile(filePath : string; options : TLoadFileOptions): TJSPromise; overload;
+    Function loadFile(filePath : string): TJSPromise; overload;
+    Function loadURL(url : string; options : TLoadURLOptions): TJSPromise; overload;
+    Function loadURL(url : string): TJSPromise; overload;
+    Procedure maximize;
+    Procedure mergeAllWindows;
+    Procedure minimize;
+    Procedure moveAbove(mediaSourceId : string);
+    Procedure moveTabToNewWindow;
+    Procedure moveTop;
+    Function once(event : String; listener : TBrowserWindow_once_listener): TBrowserWindow; overload;
+    Function once(event : String; listener : TJSFunction): TBrowserWindow; overload;
+    Procedure previewFile(path : string; displayName : string); overload;
+    Procedure previewFile(path : string); overload;
+    Procedure reload;
+    Procedure removeBrowserView(browserView : TBrowserView);
+    Function removeListener(event : String; listener : TBrowserWindow_removeListener_listener): TBrowserWindow; overload;
+    Function removeListener(event : String; listener : TJSFunction): TBrowserWindow; overload;
+    Procedure removeMenu;
+    Procedure restore;
+    Procedure selectNextTab;
+    Procedure selectPreviousTab;
+    Procedure setAlwaysOnTop(flag : boolean; level : jsvalue; relativeLevel : Double); overload;
+    Procedure setAlwaysOnTop(flag : boolean); overload;
+    Procedure setAlwaysOnTop(flag : boolean; level : jsvalue); overload;
+    Procedure setAppDetails(options : TAppDetailsOptions);
+    Procedure setAspectRatio(aspectRatio : Double; extraSize : TSize); overload;
+    Procedure setAspectRatio(aspectRatio : Double); overload;
+    Procedure setAutoHideCursor(autoHide : boolean);
+    Procedure setAutoHideMenuBar(hide : boolean);
+    Procedure setBackgroundColor(backgroundColor : string);
+    Procedure setBounds(bounds : TJSObject; animate : boolean); overload;
+    Procedure setBounds(bounds : TJSObject); overload;
+    Procedure setBrowserView(browserView : jsvalue);
+    Procedure setClosable(closable : boolean);
+    Procedure setContentBounds(bounds : TRectangle; animate : boolean); overload;
+    Procedure setContentBounds(bounds : TRectangle); overload;
+    Procedure setContentProtection(enable : boolean);
+    Procedure setContentSize(width : Double; height : Double; animate : boolean); overload;
+    Procedure setContentSize(width : Double; height : Double); overload;
+    Procedure setDocumentEdited(edited : boolean);
+    Procedure setEnabled(enable : boolean);
+    Procedure setFocusable(focusable : boolean);
+    Procedure setFullScreen(flag : boolean);
+    Procedure setFullScreenable(fullscreenable : boolean);
+    Procedure setHasShadow(hasShadow : boolean);
+    Procedure setIcon(icon : jsvalue);
+    Procedure setIgnoreMouseEvents(ignore : boolean; options : TIgnoreMouseEventsOptions); overload;
+    Procedure setIgnoreMouseEvents(ignore : boolean); overload;
+    Procedure setKiosk(flag : boolean);
+    Procedure setMaximizable(maximizable : boolean);
+    Procedure setMaximumSize(width : Double; height : Double);
+    Procedure setMenu(menu : jsvalue);
+    Procedure setMenuBarVisibility(visible : boolean);
+    Procedure setMinimizable(minimizable : boolean);
+    Procedure setMinimumSize(width : Double; height : Double);
+    Procedure setMovable(movable : boolean);
+    Procedure setOpacity(opacity : Double);
+    Procedure setOverlayIcon(overlay : jsvalue; description : string);
+    Procedure setParentWindow(parent : jsvalue);
+    Procedure setPosition(x : Double; y : Double; animate : boolean); overload;
+    Procedure setPosition(x : Double; y : Double); overload;
+    Procedure setProgressBar(progress : Double; options : TProgressBarOptions); overload;
+    Procedure setProgressBar(progress : Double); overload;
+    Procedure setRepresentedFilename(filename : string);
+    Procedure setResizable(resizable : boolean);
+    Procedure setShape(rects : array of TRectangle);
+    Procedure setSheetOffset(offsetY : Double; offsetX : Double); overload;
+    Procedure setSheetOffset(offsetY : Double); overload;
+    Procedure setSimpleFullScreen(flag : boolean);
+    Procedure setSize(width : Double; height : Double; animate : boolean); overload;
+    Procedure setSize(width : Double; height : Double); overload;
+    Procedure setSkipTaskbar(skip : boolean);
+    Function setThumbarButtons(buttons : array of TThumbarButton): boolean;
+    Procedure setThumbnailClip(region : TRectangle);
+    Procedure setThumbnailToolTip(toolTip : string);
+    Procedure setTitle(title : string);
+    Procedure setTopBrowserView(browserView : TBrowserView);
+    Procedure setTouchBar(touchBar : jsvalue);
+    Procedure setTrafficLightPosition(position : TPoint);
+    Procedure setVibrancy(&type : jsvalue);
+    Procedure setVisibleOnAllWorkspaces(visible : boolean; options : TVisibleOnAllWorkspacesOptions); overload;
+    Procedure setVisibleOnAllWorkspaces(visible : boolean); overload;
+    Procedure setWindowButtonVisibility(visible : boolean);
+    Procedure show;
+    Procedure showDefinitionForSelection;
+    Procedure showInactive;
+    Procedure toggleTabBar;
+    Procedure unhookAllWindowMessages;
+    Procedure unhookWindowMessage(message : Double);
+    Procedure unmaximize;
+    accessibleTitle : string;
+    autoHideMenuBar : boolean;
+    closable : boolean;
+    documentEdited : boolean;
+    excludedFromShownWindowsMenu : boolean;
+    focusable : boolean;
+    fullScreen : boolean;
+    fullScreenable : boolean;
+    Property id : Double Read Fid;
+    kiosk : boolean;
+    maximizable : boolean;
+    menuBarVisible : boolean;
+    minimizable : boolean;
+    movable : boolean;
+    representedFilename : string;
+    resizable : boolean;
+    shadow : boolean;
+    simpleFullScreen : boolean;
+    title : string;
+    visibleOnAllWorkspaces : boolean;
+    Property webContents : TWebContents Read FwebContents;
+  end;
+
+  TBrowserWindowProxy = class external name 'BrowserWindowProxy' (TJSObject)
+  Public
+    Procedure blur;
+    Procedure close;
+    Procedure eval(code : string);
+    Procedure focus;
+    Procedure postMessage(message : JSValue; targetOrigin : string);
+    Procedure print;
+    closed : boolean;
+  end;
+
+  TClientRequest_on_listener = Procedure (error : TJSError);
+  TClientRequest_once_listener = Procedure (error : TJSError);
+  TClientRequest_addListener_listener = Procedure (error : TJSError);
+  TClientRequest_removeListener_listener = Procedure (error : TJSError);
+  TClientRequest_on_listener_callback = Procedure (username : string; password : string);
+  TClientRequest_once_listener_callback = Procedure (username : string; password : string);
+  TClientRequest_addListener_listener_callback = Procedure (username : string; password : string);
+  TClientRequest_removeListener_listener_callback = Procedure (username : string; password : string);
+  TClientRequest_end_callback = Procedure;
+  TClientRequest_write_callback = Procedure;
+  TClientRequest = class external name 'ClientRequest' (TNJSEventEmitter)
+  Public
+    Constructor New(options : jsvalue);
+    Procedure &end(chunk : jsvalue; encoding : string; callback : TClientRequest_end_callback); overload;
+    Procedure &end; overload;
+    Procedure &end(chunk : jsvalue); overload;
+    Procedure &end(chunk : jsvalue; encoding : string); overload;
+    Function &on(event : String; listener : TJSFunction): TClientRequest; overload;
+    Function &on(event : String; listener : TClientRequest_on_listener): TClientRequest; overload;
+    Procedure abort;
+    Function addListener(event : String; listener : TJSFunction): TClientRequest; overload;
+    Function addListener(event : String; listener : TClientRequest_addListener_listener): TClientRequest; overload;
+    Procedure followRedirect;
+    Function getHeader(name : string): string;
+    Function getUploadProgress: TUploadProgress;
+    Function once(event : String; listener : TJSFunction): TClientRequest; overload;
+    Function once(event : String; listener : TClientRequest_once_listener): TClientRequest; overload;
+    Procedure removeHeader(name : string);
+    Function removeListener(event : String; listener : TJSFunction): TClientRequest; overload;
+    Function removeListener(event : String; listener : TClientRequest_removeListener_listener): TClientRequest; overload;
+    Procedure setHeader(name : string; value : string);
+    Procedure write(chunk : jsvalue; encoding : string; callback : TClientRequest_write_callback); overload;
+    Procedure write(chunk : jsvalue); overload;
+    Procedure write(chunk : jsvalue; encoding : string); overload;
+    chunkedEncoding : boolean;
+  end;
+
+  TCommandLine = class external name 'CommandLine' (TJSObject)
+  Public
+    Procedure appendArgument(value : string);
+    Procedure appendSwitch(the_switch : string; value : string); overload;
+    Procedure appendSwitch(the_switch : string); overload;
+    Function getSwitchValue(the_switch : string): string;
+    Function hasSwitch(the_switch : string): boolean;
+    Procedure removeSwitch(the_switch : string);
+  end;
+
+  TCookies_on_listener = Procedure (event : TEvent; cookie : TCookie; cause : jsvalue; removed : boolean);
+  TCookies_once_listener = Procedure (event : TEvent; cookie : TCookie; cause : jsvalue; removed : boolean);
+  TCookies_addListener_listener = Procedure (event : TEvent; cookie : TCookie; cause : jsvalue; removed : boolean);
+  TCookies_removeListener_listener = Procedure (event : TEvent; cookie : TCookie; cause : jsvalue; removed : boolean);
+  TCookies = class external name 'Cookies' (TNJSEventEmitter)
+  Public
+    Function &on(event : String; listener : TCookies_on_listener): TCookies;
+    Function &set(details : TCookiesSetDetails): TJSPromise;
+    Function addListener(event : String; listener : TCookies_addListener_listener): TCookies; reintroduce;
+    Function flushStore: TJSPromise;
+    Function get(filter : TCookiesGetFilter): TJSPromise;
+    Function once(event : String; listener : TCookies_once_listener): TCookies;reintroduce;
+    Function remove(url : string; name : string): TJSPromise;
+    Function removeListener(event : String; listener : TCookies_removeListener_listener): TCookies;reintroduce;
+  end;
+
+  TDebugger_on_listener = Procedure (event : TEvent; reason : string);
+  TDebugger_once_listener = Procedure (event : TEvent; reason : string);
+  TDebugger_addListener_listener = Procedure (event : TEvent; reason : string);
+  TDebugger_removeListener_listener = Procedure (event : TEvent; reason : string);
+  TDebugger = class external name 'Debugger' (TNJSEventEmitter)
+  Public
+    Function &on(event : String; listener : TDebugger_on_listener): TDebugger; overload;
+    Function addListener(event : String; listener : TDebugger_addListener_listener): TDebugger; overload;
+    Procedure attach(protocolVersion : string); overload;
+    Procedure attach; overload;
+    Procedure detach;
+    Function isAttached: boolean;
+    Function once(event : String; listener : TDebugger_once_listener): TDebugger; overload;
+    Function removeListener(event : String; listener : TDebugger_removeListener_listener): TDebugger; overload;
+    Function sendCommand(method : string; commandParams : JSValue; sessionId : string): TJSPromise; overload;
+    Function sendCommand(method : string): TJSPromise; overload;
+    Function sendCommand(method : string; commandParams : JSValue): TJSPromise; overload;
+  end;
+
+  TDock = class external name 'Dock' (TJSObject)
+  Public
+    Function bounce(&type : jsvalue): Double; overload;
+    Function bounce: Double; overload;
+    Procedure cancelBounce(id : Double);
+    Procedure downloadFinished(filePath : string);
+    Function getBadge: string;
+    Function getMenu: jsvalue;
+    Procedure hide;
+    Function isVisible: boolean;
+    Procedure setBadge(text : string);
+    Procedure setIcon(image : jsvalue);
+    Procedure setMenu(menu : TMenu);
+    Function show: TJSPromise;
+  end;
+
+  TDownloadItem_on_listener = Procedure (event : TEvent; state : jsvalue);
+  TDownloadItem_once_listener = Procedure (event : TEvent; state : jsvalue);
+  TDownloadItem_addListener_listener = Procedure (event : TEvent; state : jsvalue);
+  TDownloadItem_removeListener_listener = Procedure (event : TEvent; state : jsvalue);
+  TDownloadItem_getURLChain_Result = array of string;
+  TDownloadItem = class external name 'DownloadItem' (TNJSEventEmitter)
+  Public
+    Function &on(event : String; listener : TDownloadItem_on_listener): TDownloadItem; overload;
+    Function addListener(event : String; listener : TDownloadItem_addListener_listener): TDownloadItem; overload;
+    Procedure cancel;
+    Function canResume: boolean;
+    Function getContentDisposition: string;
+    Function getETag: string;
+    Function getFilename: string;
+    Function getLastModifiedTime: string;
+    Function getMimeType: string;
+    Function getReceivedBytes: Double;
+    Function getSaveDialogOptions: TSaveDialogOptions;
+    Function getSavePath: string;
+    Function getStartTime: Double;
+    Function getState: jsvalue;
+    Function getTotalBytes: Double;
+    Function getURL: string;
+    Function getURLChain: TDownloadItem_getURLChain_Result;
+    Function hasUserGesture: boolean;
+    Function isPaused: boolean;
+    Function once(event : String; listener : TDownloadItem_once_listener): TDownloadItem; overload;
+    Procedure pause;
+    Function removeListener(event : String; listener : TDownloadItem_removeListener_listener): TDownloadItem; overload;
+    Procedure resume;
+    Procedure setSaveDialogOptions(options : TSaveDialogOptions);
+    Procedure setSavePath(path : string);
+    savePath : string;
+  end;
+
+  TIncomingMessage_on_listener = Procedure (chunk : TNJSBuffer);
+  TIncomingMessage_once_listener = Procedure (chunk : TNJSBuffer);
+  TIncomingMessage_addListener_listener = Procedure (chunk : TNJSBuffer);
+  TIncomingMessage_removeListener_listener = Procedure (chunk : TNJSBuffer);
+  TIncomingMessage = class external name 'IncomingMessage' (TNJSEventEmitter)
+  Public
+    Function &on(event : String; listener : TJSFunction): TIncomingMessage; overload;
+    Function addListener(event : String; listener : TJSFunction): TIncomingMessage; overload;
+    Function once(event : String; listener : TJSFunction): TIncomingMessage; overload;
+    Function removeListener(event : String; listener : TJSFunction): TIncomingMessage; overload;
+    headers : TJSObject;
+    httpVersion : string;
+    httpVersionMajor : Double;
+    httpVersionMinor : Double;
+    statusCode : Double;
+    statusMessage : string;
+  end;
+
+  TMenu_items = array of TMenuItem;
+  TMenu_on_listener = Procedure (event : TEvent);
+  TMenu_once_listener = Procedure (event : TEvent);
+  TMenu_addListener_listener = Procedure (event : TEvent);
+  TMenu_removeListener_listener = Procedure (event : TEvent);
+  TMenu = class external name 'Menu' (TJSObject)
+  Public
+    Constructor New;
+    Function &on(event : String; listener : TMenu_on_listener): TMenu; overload;
+    Function addListener(event : String; listener : TMenu_addListener_listener): TMenu; overload;
+    Procedure append(menuItem : TMenuItem);
+    Function buildFromTemplate(template : array of jsvalue): TMenu;
+    Procedure closePopup(browserWindow : TBrowserWindow); overload;
+    Procedure closePopup; overload;
+    Function getApplicationMenu: jsvalue;
+    Function getMenuItemById(id : string): jsvalue;
+    Procedure insert(pos : Double; menuItem : TMenuItem);
+    Function once(event : String; listener : TMenu_once_listener): TMenu; overload;
+    Procedure popup(options : TPopupOptions); overload;
+    Procedure popup; overload;
+    Function removeListener(event : String; listener : TMenu_removeListener_listener): TMenu; overload;
+    Procedure sendActionToFirstResponder(action : string);
+    Procedure setApplicationMenu(menu : jsvalue);
+    items : TMenu_items;
+  end;
+
+  TMenuItem = class external name 'MenuItem' (TJSObject)
+  Private
+    FuserAccelerator : jsvalue; external name 'userAccelerator';
+  Public
+    Constructor New(options : TMenuItemConstructorOptions);
+    accelerator : TAccelerator;
+    checked : boolean;
+    click : TJSFunction;
+    commandId : Double;
+    enabled : boolean;
+    icon : jsvalue;
+    id : string;
+    &label : string;external name 'label';
+    menu : TMenu;
+    registerAccelerator : boolean;
+    role : jsvalue;
+    sharingItem : TSharingItem;
+    sublabel : string;
+    submenu : TMenu;
+    toolTip : string;
+    &type : jsvalue;external name 'type';
+    Property userAccelerator : jsvalue Read FuserAccelerator;
+    visible : boolean;
+  end;
+
+  TMessageChannelMain = class external name 'MessageChannelMain' (TNJSEventEmitter)
+  Public
+    port1 : TMessagePortMain;
+    port2 : TMessagePortMain;
+  end;
+
+  TMessagePortMain_on_listener = Procedure (messageEvent : TMessageEvent);
+  TMessagePortMain_once_listener = Procedure (messageEvent : TMessageEvent);
+  TMessagePortMain_addListener_listener = Procedure (messageEvent : TMessageEvent);
+  TMessagePortMain_removeListener_listener = Procedure (messageEvent : TMessageEvent);
+  TMessagePortMain = class external name 'MessagePortMain' (TNJSEventEmitter)
+  Public
+    Function &on(event : String; listener : TJSFunction): TMessagePortMain; overload;
+    Function &on(event : String; listener : TMessagePortMain_on_listener): TMessagePortMain; overload;
+    Function addListener(event : String; listener : TJSFunction): TMessagePortMain; overload;
+    Function addListener(event : String; listener : TMessagePortMain_addListener_listener): TMessagePortMain; overload;
+    Procedure close;
+    Function once(event : String; listener : TJSFunction): TMessagePortMain; overload;
+    Function once(event : String; listener : TMessagePortMain_once_listener): TMessagePortMain; overload;
+    Procedure postMessage(message : JSValue; transfer : array of TMessagePortMain); overload;
+    Procedure postMessage(message : JSValue); overload;
+    Function removeListener(event : String; listener : TJSFunction): TMessagePortMain; overload;
+    Function removeListener(event : String; listener : TMessagePortMain_removeListener_listener): TMessagePortMain; overload;
+    Procedure start;
+  end;
+
+  TNativeImage_getScaleFactors_Result = array of Double;
+  TNativeImage = class external name 'NativeImage' (TJSObject)
+  Public
+    Procedure addRepresentation(options : TAddRepresentationOptions);
+    Function createEmpty: TNativeImage;
+    Function createFromBitmap(buffer : TNJSBuffer; options : TCreateFromBitmapOptions): TNativeImage;
+    Function createFromBuffer(buffer : TNJSBuffer; options : TCreateFromBufferOptions): TNativeImage; overload;
+    Function createFromBuffer(buffer : TNJSBuffer): TNativeImage; overload;
+    Function createFromDataURL(dataURL : string): TNativeImage;
+    Function createFromNamedImage(imageName : string; hslShift : array of Double): TNativeImage; overload;
+    Function createFromNamedImage(imageName : string): TNativeImage; overload;
+    Function createFromPath(path : string): TNativeImage;
+    Function createThumbnailFromPath(path : string; maxSize : TSize): TJSPromise;
+    Function crop(rect : TRectangle): TNativeImage;
+    Function getAspectRatio(scaleFactor : Double): Double; overload;
+    Function getAspectRatio: Double; overload;
+    Function getBitmap(options : TBitmapOptions): TNJSBuffer; overload;
+    Function getBitmap: TNJSBuffer; overload;
+    Function getNativeHandle: TNJSBuffer;
+    Function getScaleFactors: TNativeImage_getScaleFactors_Result;
+    Function getSize(scaleFactor : Double): TSize; overload;
+    Function getSize: TSize; overload;
+    Function isEmpty: boolean;
+    Function isTemplateImage: boolean;
+    Function resize(options : TResizeOptions): TNativeImage;
+    Procedure setTemplateImage(option : boolean);
+    Function toBitmap(options : TToBitmapOptions): TNJSBuffer; overload;
+    Function toBitmap: TNJSBuffer; overload;
+    Function toDataURL(options : TToDataURLOptions): string; overload;
+    Function toDataURL: string; overload;
+    Function toJPEG(quality : Double): TNJSBuffer;
+    Function toPNG(options : TToPNGOptions): TNJSBuffer; overload;
+    Function toPNG: TNJSBuffer; overload;
+    isMacTemplateImage : boolean;
+  end;
+
+  TNotification_actions = array of TNotificationAction;
+  TNotification_on_listener = Procedure (event : TEvent; index : Double);
+  TNotification_once_listener = Procedure (event : TEvent; index : Double);
+  TNotification_addListener_listener = Procedure (event : TEvent; index : Double);
+  TNotification_removeListener_listener = Procedure (event : TEvent; index : Double);
+  TNotification = class external name 'Notification' (TNJSEventEmitter)
+  Public
+    Constructor New(options : TNotificationConstructorOptions); overload;
+    Constructor New; overload;
+    Function &on(event : String; listener : TNotification_on_listener): TNotification; overload;
+    Function addListener(event : String; listener : TNotification_addListener_listener): TNotification; overload;
+    Procedure close;
+    Function isSupported: boolean;
+    Function once(event : String; listener : TNotification_once_listener): TNotification; overload;
+    Function removeListener(event : String; listener : TNotification_removeListener_listener): TNotification; overload;
+    Procedure show;
+    actions : TNotification_actions;
+    body : string;
+    closeButtonText : string;
+    hasReply : boolean;
+    replyPlaceholder : string;
+    silent : boolean;
+    sound : string;
+    subtitle : string;
+    timeoutType : jsvalue;
+    title : string;
+    toastXml : string;
+    urgency : jsvalue;
+  end;
+
+  TServiceWorkers_on_listener = Procedure (event : TEvent; messageDetails : TMessageDetails);
+  TServiceWorkers_once_listener = Procedure (event : TEvent; messageDetails : TMessageDetails);
+  TServiceWorkers_addListener_listener = Procedure (event : TEvent; messageDetails : TMessageDetails);
+  TServiceWorkers_removeListener_listener = Procedure (event : TEvent; messageDetails : TMessageDetails);
+  TServiceWorkers = class external name 'ServiceWorkers' (TNJSEventEmitter)
+  Public
+    Function &on(event : String; listener : TServiceWorkers_on_listener): TServiceWorkers; overload;
+    Function addListener(event : String; listener : TServiceWorkers_addListener_listener): TServiceWorkers; overload;
+    Function getAllRunning: TJSObject;
+    Function getFromVersionID(versionId : Double): TServiceWorkerInfo;
+    Function once(event : String; listener : TServiceWorkers_once_listener): TServiceWorkers; overload;
+    Function removeListener(event : String; listener : TServiceWorkers_removeListener_listener): TServiceWorkers; overload;
+  end;
+
+  TSession_availableSpellCheckerLanguages = array of string;
+  TSession_on_listener = Procedure (event : TEvent; extension : TExtension);
+  TSession_once_listener = Procedure (event : TEvent; extension : TExtension);
+  TSession_addListener_listener = Procedure (event : TEvent; extension : TExtension);
+  TSession_removeListener_listener = Procedure (event : TEvent; extension : TExtension);
+  TSession_on_listener_callback = Procedure (deviceId : jsvalue);
+  TSession_once_listener_callback = Procedure (deviceId : jsvalue);
+  TSession_addListener_listener_callback = Procedure (deviceId : jsvalue);
+  TSession_removeListener_listener_callback = Procedure (deviceId : jsvalue);
+  TSession_getAllExtensions_Result = array of TExtension;
+  TSession_getPreloads_Result = array of string;
+  TSession_getSpellCheckerLanguages_Result = array of string;
+  TSession = class external name 'Session' (TNJSEventEmitter)
+  Private
+    FavailableSpellCheckerLanguages : TSession_availableSpellCheckerLanguages; external name 'availableSpellCheckerLanguages';
+    Fcookies : TCookies; external name 'cookies';
+    FnetLog : TNetLog; external name 'netLog';
+    Fprotocol : TProtocol; external name 'protocol';
+    FserviceWorkers : TServiceWorkers; external name 'serviceWorkers';
+    FstoragePath : jsvalue; external name 'storagePath';
+    FwebRequest : TWebRequest; external name 'webRequest';
+  Public
+    Function &on(event : String; listener : TSession_on_listener): TSession; overload;
+    Function addListener(event : String; listener : TSession_addListener_listener): TSession; overload;
+    Function addWordToSpellCheckerDictionary(word : string): boolean;
+    Procedure allowNTLMCredentialsForDomains(domains : string);
+    Function clearAuthCache: TJSPromise;
+    Function clearCache: TJSPromise;
+    Function clearCodeCaches(options : TClearCodeCachesOptions): TJSPromise;
+    Function clearHostResolverCache: TJSPromise;
+    Function clearStorageData(options : TClearStorageDataOptions): TJSPromise; overload;
+    Function clearStorageData: TJSPromise; overload;
+    Function closeAllConnections: TJSPromise;
+    Procedure createInterruptedDownload(options : TCreateInterruptedDownloadOptions);
+    Procedure disableNetworkEmulation;
+    Procedure downloadURL(url : string);
+    Procedure enableNetworkEmulation(options : TEnableNetworkEmulationOptions);
+    Procedure flushStorageData;
+    Function forceReloadProxyConfig: TJSPromise;
+    Function fromPartition(partition : string; options : TFromPartitionOptions): TSession; overload;
+    Function fromPartition(partition : string): TSession; overload;
+    Function getAllExtensions: TSession_getAllExtensions_Result;
+    Function getBlobData(identifier : string): TJSPromise;
+    Function getCacheSize: TJSPromise;
+    Function getExtension(extensionId : string): TExtension;
+    Function getPreloads: TSession_getPreloads_Result;
+    Function getSpellCheckerLanguages: TSession_getSpellCheckerLanguages_Result;
+    Procedure getStoragePath;
+    Function getUserAgent: string;
+    Function isPersistent: boolean;
+    Function isSpellCheckerEnabled: boolean;
+    Function listWordsInSpellCheckerDictionary: TJSPromise;
+    Function loadExtension(path : string; options : TLoadExtensionOptions): TJSPromise; overload;
+    Function loadExtension(path : string): TJSPromise; overload;
+    Function once(event : String; listener : TSession_once_listener): TSession; overload;
+    Procedure preconnect(options : TPreconnectOptions);
+    Procedure removeExtension(extensionId : string);
+    Function removeListener(event : String; listener : TSession_removeListener_listener): TSession; overload;
+    Function removeWordFromSpellCheckerDictionary(word : string): boolean;
+    Function resolveProxy(url : string): TJSPromise;
+    Procedure setCertificateVerifyProc(proc : jsvalue);
+    Procedure setCodeCachePath(path : string);
+    Procedure setDevicePermissionHandler(handler : jsvalue);
+    Procedure setDownloadPath(path : string);
+    Procedure setPermissionCheckHandler(handler : jsvalue);
+    Procedure setPermissionRequestHandler(handler : jsvalue);
+    Procedure setPreloads(preloads : array of string);
+    Function setProxy(config : TConfig): TJSPromise;
+    Procedure setSpellCheckerDictionaryDownloadURL(url : string);
+    Procedure setSpellCheckerEnabled(enable : boolean);
+    Procedure setSpellCheckerLanguages(languages : array of string);
+    Procedure setSSLConfig(config : TSSLConfigConfig);
+    Procedure setUserAgent(userAgent : string; acceptLanguages : string); overload;
+    Procedure setUserAgent(userAgent : string); overload;
+    defaultSession : TSession;
+    Property availableSpellCheckerLanguages : TSession_availableSpellCheckerLanguages Read FavailableSpellCheckerLanguages;
+    Property cookies : TCookies Read Fcookies;
+    Property netLog : TNetLog Read FnetLog;
+    Property protocol : TProtocol Read Fprotocol;
+    Property serviceWorkers : TServiceWorkers Read FserviceWorkers;
+    spellCheckerEnabled : boolean;
+    Property storagePath : jsvalue Read FstoragePath;
+    Property webRequest : TWebRequest Read FwebRequest;
+  end;
+
+  TShareMenu = class external name 'ShareMenu' (TNJSEventEmitter)
+  Public
+    Constructor New(sharingItem : TSharingItem);
+    Procedure closePopup(browserWindow : TBrowserWindow); overload;
+    Procedure closePopup; overload;
+    Procedure popup(options : TPopupOptions); overload;
+    Procedure popup; overload;
+  end;
+
+  TTouchBar = class external name 'TouchBar' (TJSObject)
+  Public
+    Constructor New(options : TTouchBarConstructorOptions);
+    escapeItem : jsvalue;
+    TouchBarButton : TTouchBarButton;
+    TouchBarColorPicker : TTouchBarColorPicker;
+    TouchBarGroup : TTouchBarGroup;
+    TouchBarLabel : TTouchBarLabel;
+    TouchBarOtherItemsProxy : TTouchBarOtherItemsProxy;
+    TouchBarPopover : TTouchBarPopover;
+    TouchBarScrubber : TTouchBarScrubber;
+    TouchBarSegmentedControl : TTouchBarSegmentedControl;
+    TouchBarSlider : TTouchBarSlider;
+    TouchBarSpacer : TTouchBarSpacer;
+  end;
+
+  TTouchBarButton = class external name 'TouchBarButton' (TJSObject)
+  Public
+    Constructor New(options : TTouchBarButtonConstructorOptions);
+    accessibilityLabel : string;
+    backgroundColor : string;
+    enabled : boolean;
+    icon : TNativeImage;
+    iconPosition : jsvalue;
+    &label : string;external name 'label';
+  end;
+
+  TTouchBarColorPicker_availableColors = array of string;
+  TTouchBarColorPicker = class external name 'TouchBarColorPicker' (TNJSEventEmitter)
+  Public
+    Constructor New(options : TTouchBarColorPickerConstructorOptions);
+    availableColors : TTouchBarColorPicker_availableColors;
+    selectedColor : string;
+  end;
+
+  TTouchBarGroup = class external name 'TouchBarGroup' (TNJSEventEmitter)
+  Public
+    Constructor New(options : TTouchBarGroupConstructorOptions);
+  end;
+
+  TTouchBarLabel = class external name 'TouchBarLabel' (TNJSEventEmitter)
+  Public
+    Constructor New(options : TTouchBarLabelConstructorOptions);
+    accessibilityLabel : string;
+    &label : string;external name 'label';
+    textColor : string;
+  end;
+
+  TTouchBarOtherItemsProxy = class external name 'TouchBarOtherItemsProxy' (TNJSEventEmitter)
+  Public
+    Constructor New;
+  end;
+
+  TTouchBarPopover = class external name 'TouchBarPopover' (TNJSEventEmitter)
+  Public
+    Constructor New(options : TTouchBarPopoverConstructorOptions);
+    icon : TNativeImage;
+    &label : string;external name 'label';
+  end;
+
+  TTouchBarScrubber_items = array of TScrubberItem;
+  TTouchBarScrubber = class external name 'TouchBarScrubber' (TNJSEventEmitter)
+  Public
+    Constructor New(options : TTouchBarScrubberConstructorOptions);
+    continuous : boolean;
+    items : TTouchBarScrubber_items;
+    mode : jsvalue;
+    overlayStyle : jsvalue;
+    selectedStyle : jsvalue;
+    showArrowButtons : boolean;
+  end;
+
+  TTouchBarSegmentedControl_segments = array of TSegmentedControlSegment;
+  TTouchBarSegmentedControl = class external name 'TouchBarSegmentedControl' (TNJSEventEmitter)
+  Public
+    Constructor New(options : TTouchBarSegmentedControlConstructorOptions);
+    mode : jsvalue;
+    segments : TTouchBarSegmentedControl_segments;
+    segmentStyle : string;
+    selectedIndex : Double;
+  end;
+
+  TTouchBarSlider = class external name 'TouchBarSlider' (TNJSEventEmitter)
+  Public
+    Constructor New(options : TTouchBarSliderConstructorOptions);
+    &label : string;external name 'label';
+    maxValue : Double;
+    minValue : Double;
+    value : Double;
+  end;
+
+  TTouchBarSpacer = class external name 'TouchBarSpacer' (TNJSEventEmitter)
+  Public
+    Constructor New(options : TTouchBarSpacerConstructorOptions);
+    size : jsvalue;
+  end;
+
+  TTray_on_listener = Procedure (event : TKeyboardEvent; bounds : TRectangle; position : TPoint);
+  TTray_once_listener = Procedure (event : TKeyboardEvent; bounds : TRectangle; position : TPoint);
+  TTray_addListener_listener = Procedure (event : TKeyboardEvent; bounds : TRectangle; position : TPoint);
+  TTray_removeListener_listener = Procedure (event : TKeyboardEvent; bounds : TRectangle; position : TPoint);
+  TTray = class external name 'Tray' (TNJSEventEmitter)
+  Public
+    Constructor New(image : jsvalue; guid : string); overload;
+    Constructor New(image : jsvalue); overload;
+    Function &on(event : String; listener : TJSFunction): TTray; overload;
+    Function &on(event : String; listener : TTray_on_listener): TTray; overload;
+    Function addListener(event : String; listener : TJSFunction): TTray; overload;
+    Function addListener(event : String; listener : TTray_addListener_listener): TTray; overload;
+    Procedure closeContextMenu;
+    Procedure destroy;
+    Procedure displayBalloon(options : TDisplayBalloonOptions);
+    Procedure focus;
+    Function getBounds: TRectangle;
+    Function getIgnoreDoubleClickEvents: boolean;
+    Function getTitle: string;
+    Function isDestroyed: boolean;
+    Function once(event : String; listener : TJSFunction): TTray; overload;
+    Function once(event : String; listener : TTray_once_listener): TTray; overload;
+    Procedure popUpContextMenu(menu : TMenu; position : TPoint); overload;
+    Procedure popUpContextMenu; overload;
+    Procedure popUpContextMenu(menu : TMenu); overload;
+    Procedure removeBalloon;
+    Function removeListener(event : String; listener : TJSFunction): TTray; overload;
+    Function removeListener(event : String; listener : TTray_removeListener_listener): TTray; overload;
+    Procedure setContextMenu(menu : jsvalue);
+    Procedure setIgnoreDoubleClickEvents(ignore : boolean);
+    Procedure setImage(image : jsvalue);
+    Procedure setPressedImage(image : jsvalue);
+    Procedure setTitle(title : string; options : TTitleOptions); overload;
+    Procedure setTitle(title : string); overload;
+    Procedure setToolTip(toolTip : string);
+  end;
+
+  TWebContents_getAllWebContents_Result = array of TWebContents;
+  TWebContents_on_listener = Procedure (event : TEvent; input : TInput);
+  TWebContents_once_listener = Procedure (event : TEvent; input : TInput);
+  TWebContents_addListener_listener = Procedure (event : TEvent; input : TInput);
+  TWebContents_removeListener_listener = Procedure (event : TEvent; input : TInput);
+  TWebContents_on_listener_callback = Procedure (isTrusted : boolean);
+  TWebContents_once_listener_callback = Procedure (isTrusted : boolean);
+  TWebContents_addListener_listener_callback = Procedure (isTrusted : boolean);
+  TWebContents_removeListener_listener_callback = Procedure (isTrusted : boolean);
+  TWebContents_beginFrameSubscription_callback = Procedure (image : TNativeImage; dirtyRect : TRectangle);
+  TWebContents_getAllSharedWorkers_Result = array of TSharedWorkerInfo;
+  TWebContents_getPrinters_Result = array of TPrinterInfo;
+  TWebContents_print_callback = Procedure (success : boolean; failureReason : string);
+  TWebContents_setWindowOpenHandler_handler = Function (details : THandlerDetails): jsvalue;
+  TWebContents = class external name 'WebContents' (TNJSEventEmitter)
+  Private
+    Fdebugger : TDebugger; external name 'debugger';
+    FdevToolsWebContents : jsvalue; external name 'devToolsWebContents';
+    FhostWebContents : TWebContents; external name 'hostWebContents';
+    Fid : Double; external name 'id';
+    FmainFrame : TWebFrameMain; external name 'mainFrame';
+    Fsession : TSession; external name 'session';
+  Public
+    Function &on(event : String; listener : TWebContents_on_listener): TWebContents; overload;
+    Function &on(event : String; listener : TJSFunction): TWebContents; overload;
+    Function addListener(event : String; listener : TWebContents_addListener_listener): TWebContents; overload;
+    Function addListener(event : String; listener : TJSFunction): TWebContents; overload;
+    Procedure addWorkSpace(path : string);
+    Procedure beginFrameSubscription(onlyDirty : boolean; callback : TWebContents_beginFrameSubscription_callback); overload;
+    Procedure beginFrameSubscription(callback : TWebContents_beginFrameSubscription_callback); overload;
+    Function canGoBack: boolean;
+    Function canGoForward: boolean;
+    Function canGoToOffset(offset : Double): boolean;
+    Function capturePage(rect : TRectangle): TJSPromise; overload;
+    Function capturePage: TJSPromise; overload;
+    Procedure clearHistory;
+    Procedure closeDevTools;
+    Procedure copy;
+    Procedure copyImageAt(x : Double; y : Double);
+    Procedure cut;
+    Procedure decrementCapturerCount(stayHidden : boolean; stayAwake : boolean); overload;
+    Procedure decrementCapturerCount; overload;
+    Procedure decrementCapturerCount(stayHidden : boolean); overload;
+    Procedure delete;
+    Procedure disableDeviceEmulation;
+    Procedure downloadURL(url : string);
+    Procedure enableDeviceEmulation(parameters : TParameters);
+    Procedure endFrameSubscription;
+    Function executeJavaScript(code : string; userGesture : boolean): TJSPromise; overload;
+    Function executeJavaScript(code : string): TJSPromise; overload;
+    Function executeJavaScriptInIsolatedWorld(worldId : Double; scripts : array of TWebSource; userGesture : boolean): TJSPromise; overload;
+    Function executeJavaScriptInIsolatedWorld(worldId : Double; scripts : array of TWebSource): TJSPromise; overload;
+    Function findInPage(text : string; options : TFindInPageOptions): Double; overload;
+    Function findInPage(text : string): Double; overload;
+    Procedure focus;
+    Procedure forcefullyCrashRenderer;
+    Function fromDevToolsTargetId(targetId : string): TWebContents;
+    Function fromId(id : Double): TWebContents;
+    Function getAllSharedWorkers: TWebContents_getAllSharedWorkers_Result;
+    Function getAllWebContents: TWebContents_getAllWebContents_Result;
+    Function getBackgroundThrottling: boolean;
+    Function getFocusedWebContents: TWebContents;
+    Function getFrameRate: Double;
+    Function getMediaSourceId(requestWebContents : TWebContents): string;
+    Function getOSProcessId: Double;
+    Function getPrinters: TWebContents_getPrinters_Result;
+    Function getPrintersAsync: TJSPromise;
+    Function getProcessId: Double;
+    Function getTitle: string;
+    Function getType: jsvalue;
+    Function getURL: string;
+    Function getUserAgent: string;
+    Function getWebRTCIPHandlingPolicy: string;
+    Function getZoomFactor: Double;
+    Function getZoomLevel: Double;
+    Procedure goBack;
+    Procedure goForward;
+    Procedure goToIndex(index : Double);
+    Procedure goToOffset(offset : Double);
+    Procedure incrementCapturerCount(size : TSize; stayHidden : boolean; stayAwake : boolean); overload;
+    Procedure incrementCapturerCount; overload;
+    Procedure incrementCapturerCount(size : TSize); overload;
+    Procedure incrementCapturerCount(size : TSize; stayHidden : boolean); overload;
+    Function insertCSS(css : string; options : TInsertCSSOptions): TJSPromise; overload;
+    Function insertCSS(css : string): TJSPromise; overload;
+    Function insertText(text : string): TJSPromise;
+    Procedure inspectElement(x : Double; y : Double);
+    Procedure inspectServiceWorker;
+    Procedure inspectSharedWorker;
+    Procedure inspectSharedWorkerById(workerId : string);
+    Procedure invalidate;
+    Function isAudioMuted: boolean;
+    Function isBeingCaptured: boolean;
+    Function isCrashed: boolean;
+    Function isCurrentlyAudible: boolean;
+    Function isDestroyed: boolean;
+    Function isDevToolsFocused: boolean;
+    Function isDevToolsOpened: boolean;
+    Function isFocused: boolean;
+    Function isLoading: boolean;
+    Function isLoadingMainFrame: boolean;
+    Function isOffscreen: boolean;
+    Function isPainting: boolean;
+    Function isWaitingForResponse: boolean;
+    Function loadFile(filePath : string; options : TLoadFileOptions): TJSPromise; overload;
+    Function loadFile(filePath : string): TJSPromise; overload;
+    Function loadURL(url : string; options : TLoadURLOptions): TJSPromise; overload;
+    Function loadURL(url : string): TJSPromise; overload;
+    Function once(event : String; listener : TWebContents_once_listener): TWebContents; overload;
+    Function once(event : String; listener : TJSFunction): TWebContents; overload;
+    Procedure openDevTools(options : TOpenDevToolsOptions); overload;
+    Procedure openDevTools; overload;
+    Procedure paste;
+    Procedure pasteAndMatchStyle;
+    Procedure postMessage(channel : string; message : JSValue; transfer : array of TMessagePortMain); overload;
+    Procedure postMessage(channel : string; message : JSValue); overload;
+    Procedure print(options : TWebContentsPrintOptions; callback : TWebContents_print_callback); overload;
+    Procedure print; overload;
+    Procedure print(options : TWebContentsPrintOptions); overload;
+    Function printToPDF(options : TPrintToPDFOptions): TJSPromise;
+    Procedure redo;
+    Procedure reload;
+    Procedure reloadIgnoringCache;
+    Function removeInsertedCSS(key : string): TJSPromise;
+    Function removeListener(event : String; listener : TWebContents_removeListener_listener): TWebContents; overload;
+    Function removeListener(event : String; listener : TJSFunction): TWebContents; overload;
+    Procedure removeWorkSpace(path : string);
+    Procedure replace(text : string);
+    Procedure replaceMisspelling(text : string);
+    Function savePage(fullPath : string; saveType : jsvalue): TJSPromise;
+    Procedure selectAll;
+    Procedure send(channel : string; args : array of JSValue);
+    Procedure sendInputEvent(inputEvent : jsvalue);
+    Procedure sendToFrame(frameId : jsvalue; channel : string; args : array of JSValue);
+    Procedure setAudioMuted(muted : boolean);
+    Procedure setBackgroundThrottling(allowed : boolean);
+    Procedure setDevToolsWebContents(devToolsWebContents : TWebContents);
+    Procedure setFrameRate(fps : Double);
+    Procedure setIgnoreMenuShortcuts(ignore : boolean);
+    Procedure setImageAnimationPolicy(policy : jsvalue);
+    Procedure setUserAgent(userAgent : string);
+    Function setVisualZoomLevelLimits(minimumLevel : Double; maximumLevel : Double): TJSPromise;
+    Procedure setWebRTCIPHandlingPolicy(policy : jsvalue);
+    Procedure setWindowOpenHandler(handler : TWebContents_setWindowOpenHandler_handler);
+    Procedure setZoomFactor(factor : Double);
+    Procedure setZoomLevel(level : Double);
+    Procedure showDefinitionForSelection;
+    Procedure startDrag(item : TItem);
+    Procedure startPainting;
+    Procedure stop;
+    Procedure stopFindInPage(action : jsvalue);
+    Procedure stopPainting;
+    Function takeHeapSnapshot(filePath : string): TJSPromise;
+    Procedure toggleDevTools;
+    Procedure undo;
+    Procedure unselect;
+    audioMuted : boolean;
+    backgroundThrottling : boolean;
+    Property debugger : TDebugger Read Fdebugger;
+    Property devToolsWebContents : jsvalue Read FdevToolsWebContents;
+    frameRate : Double;
+    Property hostWebContents : TWebContents Read FhostWebContents;
+    Property id : Double Read Fid;
+    Property mainFrame : TWebFrameMain Read FmainFrame;
+    Property session : TSession Read Fsession;
+    userAgent : string;
+    zoomFactor : Double;
+    zoomLevel : Double;
+  end;
+
+  TWebFrameMain_frames = array of TWebFrameMain;
+  TWebFrameMain_framesInSubtree = array of TWebFrameMain;
+  TWebFrameMain = class external name 'WebFrameMain' (TNJSEventEmitter)
+  Private
+    Fframes : TWebFrameMain_frames; external name 'frames';
+    FframesInSubtree : TWebFrameMain_framesInSubtree; external name 'framesInSubtree';
+    FframeTreeNodeId : Double; external name 'frameTreeNodeId';
+    Fname : string; external name 'name';
+    FosProcessId : Double; external name 'osProcessId';
+    Fparent : jsvalue; external name 'parent';
+    FprocessId : Double; external name 'processId';
+    FroutingId : Double; external name 'routingId';
+    Ftop : jsvalue; external name 'top';
+    Furl : string; external name 'url';
+    FvisibilityState : string; external name 'visibilityState';
+  Public
+    Function &on(event : String; listener : TJSFunction): TWebFrameMain;
+    Function addListener(event : String; listener : TJSFunction): TWebFrameMain;reintroduce;
+    Function executeJavaScript(code : string; userGesture : boolean): TJSPromise; overload;
+    Function executeJavaScript(code : string): TJSPromise; overload;
+    Function fromId(processId : Double; routingId : Double): jsvalue;
+    Function once(event : String; listener : TJSFunction): TWebFrameMain;reintroduce;
+    Procedure postMessage(channel : string; message : JSValue; transfer : array of TMessagePortMain); overload;
+    Procedure postMessage(channel : string; message : JSValue); overload;
+    Function reload: boolean;
+    Function removeListener(event : String; listener : TJSFunction): TWebFrameMain;  reintroduce;
+    Procedure send(channel : string; args : array of JSValue);
+    Property frames : TWebFrameMain_frames Read Fframes;
+    Property framesInSubtree : TWebFrameMain_framesInSubtree Read FframesInSubtree;
+    Property frameTreeNodeId : Double Read FframeTreeNodeId;
+    Property name : string Read Fname;
+    Property osProcessId : Double Read FosProcessId;
+    Property parent : jsvalue Read Fparent;
+    Property processId : Double Read FprocessId;
+    Property routingId : Double Read FroutingId;
+    Property top : jsvalue Read Ftop;
+    Property url : string Read Furl;
+    Property visibilityState : string Read FvisibilityState;
+  end;
+
+  TWebRequest = class external name 'WebRequest' (TJSObject)
+  Public
+    Procedure onBeforeRedirect(filter : TWebRequestFilter; listener : jsvalue); overload;
+    Procedure onBeforeRedirect(listener : jsvalue); overload;
+    Procedure onBeforeRequest(filter : TWebRequestFilter; listener : jsvalue); overload;
+    Procedure onBeforeRequest(listener : jsvalue); overload;
+    Procedure onBeforeSendHeaders(filter : TWebRequestFilter; listener : jsvalue); overload;
+    Procedure onBeforeSendHeaders(listener : jsvalue); overload;
+    Procedure onCompleted(filter : TWebRequestFilter; listener : jsvalue); overload;
+    Procedure onCompleted(listener : jsvalue); overload;
+    Procedure onErrorOccurred(filter : TWebRequestFilter; listener : jsvalue); overload;
+    Procedure onErrorOccurred(listener : jsvalue); overload;
+    Procedure onHeadersReceived(filter : TWebRequestFilter; listener : jsvalue); overload;
+    Procedure onHeadersReceived(listener : jsvalue); overload;
+    Procedure onResponseStarted(filter : TWebRequestFilter; listener : jsvalue); overload;
+    Procedure onResponseStarted(listener : jsvalue); overload;
+    Procedure onSendHeaders(filter : TWebRequestFilter; listener : jsvalue); overload;
+    Procedure onSendHeaders(listener : jsvalue); overload;
+  end;
+
+
+  TElectronCommon = class external name 'electron' (TJSObject)
+  Public
+    TClipboard : TClipboardClass;
+    TCrashReporter : TCrashReporterClass;
+    TNativeImage : TNativeImageClass;
+    TShell : TShellClass;
+    TAboutPanelOptionsOptions : TAboutPanelOptionsOptionsClass;
+    TAddRepresentationOptions : TAddRepresentationOptionsClass;
+    TAnimationSettings : TAnimationSettingsClass;
+    TAppDetailsOptions : TAppDetailsOptionsClass;
+    TApplicationInfoForProtocolReturnValue : TApplicationInfoForProtocolReturnValueClass;
+    TAuthenticationResponseDetails : TAuthenticationResponseDetailsClass;
+    TAuthInfo : TAuthInfoClass;
+    TAutoResizeOptions : TAutoResizeOptionsClass;
+    TBeforeSendResponse : TBeforeSendResponseClass;
+    TBitmapOptions : TBitmapOptionsClass;
+    TBlinkMemoryInfo : TBlinkMemoryInfoClass;
+    TBrowserViewConstructorOptions : TBrowserViewConstructorOptionsClass;
+    TBrowserWindowConstructorOptions : TBrowserWindowConstructorOptionsClass;
+    TCertificateTrustDialogOptions : TCertificateTrustDialogOptionsClass;
+    TClearCodeCachesOptions : TClearCodeCachesOptionsClass;
+    TClearStorageDataOptions : TClearStorageDataOptionsClass;
+    TClientRequestConstructorOptions : TClientRequestConstructorOptionsClass;
+    TConfig : TConfigClass;
+    TConfigureHostResolverOptions : TConfigureHostResolverOptionsClass;
+    TConsoleMessageEvent : TConsoleMessageEventClass;
+    TContextMenuEvent : TContextMenuEventClass;
+    TContextMenuParams : TContextMenuParamsClass;
+    TContinueActivityDetails : TContinueActivityDetailsClass;
+    TCookiesGetFilter : TCookiesGetFilterClass;
+    TCookiesSetDetails : TCookiesSetDetailsClass;
+    TCrashReporterStartOptions : TCrashReporterStartOptionsClass;
+    TCreateFromBitmapOptions : TCreateFromBitmapOptionsClass;
+    TCreateFromBufferOptions : TCreateFromBufferOptionsClass;
+    TCreateInterruptedDownloadOptions : TCreateInterruptedDownloadOptionsClass;
+    TData : TDataClass;
+    TDetails : TDetailsClass;
+    TDevicePermissionHandlerHandlerDetails : TDevicePermissionHandlerHandlerDetailsClass;
+    TDidChangeThemeColorEvent : TDidChangeThemeColorEventClass;
+    TDidCreateWindowDetails : TDidCreateWindowDetailsClass;
+    TDidFailLoadEvent : TDidFailLoadEventClass;
+    TDidFrameFinishLoadEvent : TDidFrameFinishLoadEventClass;
+    TDidFrameNavigateEvent : TDidFrameNavigateEventClass;
+    TDidNavigateEvent : TDidNavigateEventClass;
+    TDidNavigateInPageEvent : TDidNavigateInPageEventClass;
+    TDidRedirectNavigationEvent : TDidRedirectNavigationEventClass;
+    TDidStartNavigationEvent : TDidStartNavigationEventClass;
+    TDisplayBalloonOptions : TDisplayBalloonOptionsClass;
+    TEnableNetworkEmulationOptions : TEnableNetworkEmulationOptionsClass;
+    TFeedURLOptions : TFeedURLOptionsClass;
+    TFileIconOptions : TFileIconOptionsClass;
+    TFindInPageOptions : TFindInPageOptionsClass;
+    TFocusOptions : TFocusOptionsClass;
+    TFoundInPageEvent : TFoundInPageEventClass;
+    TFrameCreatedDetails : TFrameCreatedDetailsClass;
+    TFromPartitionOptions : TFromPartitionOptionsClass;
+    THandlerDetails : THandlerDetailsClass;
+    THeadersReceivedResponse : THeadersReceivedResponseClass;
+    THeapStatistics : THeapStatisticsClass;
+    THidDeviceAddedDetails : THidDeviceAddedDetailsClass;
+    THidDeviceRemovedDetails : THidDeviceRemovedDetailsClass;
+    TIgnoreMouseEventsOptions : TIgnoreMouseEventsOptionsClass;
+    TImportCertificateOptions : TImportCertificateOptionsClass;
+    TInfo : TInfoClass;
+    TInput : TInputClass;
+    TInsertCSSOptions : TInsertCSSOptionsClass;
+    TIpcMessageEvent : TIpcMessageEventClass;
+    TItem : TItemClass;
+    TJumpListSettings : TJumpListSettingsClass;
+    TLoadCommitEvent : TLoadCommitEventClass;
+    TLoadExtensionOptions : TLoadExtensionOptionsClass;
+    TLoadFileOptions : TLoadFileOptionsClass;
+    TLoadURLOptions : TLoadURLOptionsClass;
+    TLoginItemSettings : TLoginItemSettingsClass;
+    TLoginItemSettingsOptions : TLoginItemSettingsOptionsClass;
+    TMenuItemConstructorOptions : TMenuItemConstructorOptionsClass;
+    TMessageBoxOptions : TMessageBoxOptionsClass;
+    TMessageBoxReturnValue : TMessageBoxReturnValueClass;
+    TMessageBoxSyncOptions : TMessageBoxSyncOptionsClass;
+    TMessageDetails : TMessageDetailsClass;
+    TMessageEvent : TMessageEventClass;
+    TMoveToApplicationsFolderOptions : TMoveToApplicationsFolderOptionsClass;
+    TNewWindowEvent : TNewWindowEventClass;
+    TNotificationConstructorOptions : TNotificationConstructorOptionsClass;
+    TOnBeforeRedirectListenerDetails : TOnBeforeRedirectListenerDetailsClass;
+    TOnBeforeRequestListenerDetails : TOnBeforeRequestListenerDetailsClass;
+    TOnBeforeSendHeadersListenerDetails : TOnBeforeSendHeadersListenerDetailsClass;
+    TOnCompletedListenerDetails : TOnCompletedListenerDetailsClass;
+    TOnErrorOccurredListenerDetails : TOnErrorOccurredListenerDetailsClass;
+    TOnHeadersReceivedListenerDetails : TOnHeadersReceivedListenerDetailsClass;
+    TOnResponseStartedListenerDetails : TOnResponseStartedListenerDetailsClass;
+    TOnSendHeadersListenerDetails : TOnSendHeadersListenerDetailsClass;
+    TOpenDevToolsOptions : TOpenDevToolsOptionsClass;
+    TOpenDialogOptions : TOpenDialogOptionsClass;
+    TOpenDialogReturnValue : TOpenDialogReturnValueClass;
+    TOpenDialogSyncOptions : TOpenDialogSyncOptionsClass;
+    TOpenExternalOptions : TOpenExternalOptionsClass;
+    TOptions : TOptionsClass;
+    TPageFaviconUpdatedEvent : TPageFaviconUpdatedEventClass;
+    TPageTitleUpdatedEvent : TPageTitleUpdatedEventClass;
+    TParameters : TParametersClass;
+    TPayment : TPaymentClass;
+    TPermissionCheckHandlerHandlerDetails : TPermissionCheckHandlerHandlerDetailsClass;
+    TPermissionRequestHandlerHandlerDetails : TPermissionRequestHandlerHandlerDetailsClass;
+    TPluginCrashedEvent : TPluginCrashedEventClass;
+    TPopupOptions : TPopupOptionsClass;
+    TPreconnectOptions : TPreconnectOptionsClass;
+    TPrintToPDFOptions : TPrintToPDFOptionsClass;
+    TPrivileges : TPrivilegesClass;
+    TProgressBarOptions : TProgressBarOptionsClass;
+    TProvider : TProviderClass;
+    TReadBookmark : TReadBookmarkClass;
+    TRegistrationCompletedDetails : TRegistrationCompletedDetailsClass;
+    TRelaunchOptions : TRelaunchOptionsClass;
+    TRenderProcessGoneDetails : TRenderProcessGoneDetailsClass;
+    TRequest : TRequestClass;
+    TResizeOptions : TResizeOptionsClass;
+    TResourceUsage : TResourceUsageClass;
+    TResponse : TResponseClass;
+    TResult : TResultClass;
+    TSaveDialogOptions : TSaveDialogOptionsClass;
+    TSaveDialogReturnValue : TSaveDialogReturnValueClass;
+    TSaveDialogSyncOptions : TSaveDialogSyncOptionsClass;
+    TSelectHidDeviceDetails : TSelectHidDeviceDetailsClass;
+    TSettings : TSettingsClass;
+    TSourcesOptions : TSourcesOptionsClass;
+    TSSLConfigConfig : TSSLConfigConfigClass;
+    TStartLoggingOptions : TStartLoggingOptionsClass;
+    TSystemMemoryInfo : TSystemMemoryInfoClass;
+    TTitleOptions : TTitleOptionsClass;
+    TToBitmapOptions : TToBitmapOptionsClass;
+    TToDataURLOptions : TToDataURLOptionsClass;
+    TToPNGOptions : TToPNGOptionsClass;
+    TTouchBarButtonConstructorOptions : TTouchBarButtonConstructorOptionsClass;
+    TTouchBarColorPickerConstructorOptions : TTouchBarColorPickerConstructorOptionsClass;
+    TTouchBarConstructorOptions : TTouchBarConstructorOptionsClass;
+    TTouchBarGroupConstructorOptions : TTouchBarGroupConstructorOptionsClass;
+    TTouchBarLabelConstructorOptions : TTouchBarLabelConstructorOptionsClass;
+    TTouchBarPopoverConstructorOptions : TTouchBarPopoverConstructorOptionsClass;
+    TTouchBarScrubberConstructorOptions : TTouchBarScrubberConstructorOptionsClass;
+    TTouchBarSegmentedControlConstructorOptions : TTouchBarSegmentedControlConstructorOptionsClass;
+    TTouchBarSliderConstructorOptions : TTouchBarSliderConstructorOptionsClass;
+    TTouchBarSpacerConstructorOptions : TTouchBarSpacerConstructorOptionsClass;
+    TTraceBufferUsageReturnValue : TTraceBufferUsageReturnValueClass;
+    TUpdateTargetUrlEvent : TUpdateTargetUrlEventClass;
+    TUploadProgress : TUploadProgressClass;
+    TVisibleOnAllWorkspacesOptions : TVisibleOnAllWorkspacesOptionsClass;
+    TWebContentsPrintOptions : TWebContentsPrintOptionsClass;
+    TWebviewTagPrintOptions : TWebviewTagPrintOptionsClass;
+    TWillNavigateEvent : TWillNavigateEventClass;
+    TWillResizeDetails : TWillResizeDetailsClass;
+    TEditFlags : TEditFlagsClass;
+    TFoundInPageResult : TFoundInPageResultClass;
+    TLaunchItems : TLaunchItemsClass;
+    TMargins : TMarginsClass;
+    TMediaFlags : TMediaFlagsClass;
+    TPageRanges : TPageRangesClass;
+    TParams : TParamsClass;
+    TTitleBarOverlay : TTitleBarOverlayClass;
+    TWebPreferences : TWebPreferencesClass;
+    TDefaultFontFamily : TDefaultFontFamilyClass;
+    TBluetoothDevice : TBluetoothDeviceClass;
+    TCertificate : TCertificateClass;
+    TCertificatePrincipal : TCertificatePrincipalClass;
+    TCookie : TCookieClass;
+    TCPUUsage : TCPUUsageClass;
+    TCrashReport : TCrashReportClass;
+    TCustomScheme : TCustomSchemeClass;
+    TDesktopCapturerSource : TDesktopCapturerSourceClass;
+    TDisplay : TDisplayClass;
+    TEvent : TEventClass;
+    TExtension : TExtensionClass;
+    TExtensionInfo : TExtensionInfoClass;
+    TFileFilter : TFileFilterClass;
+    TFilePathWithHeaders : TFilePathWithHeadersClass;
+    TGPUFeatureStatus : TGPUFeatureStatusClass;
+    THIDDevice : THIDDeviceClass;
+    TInputEvent : TInputEventClass;
+    TIOCounters : TIOCountersClass;
+    TIpcMainEvent : TIpcMainEventClass;
+    TIpcMainInvokeEvent : TIpcMainInvokeEventClass;
+    TIpcRendererEvent : TIpcRendererEventClass;
+    TJumpListCategory : TJumpListCategoryClass;
+    TJumpListItem : TJumpListItemClass;
+    TKeyboardEvent : TKeyboardEventClass;
+    TKeyboardInputEvent : TKeyboardInputEventClass;
+    TMemoryInfo : TMemoryInfoClass;
+    TMemoryUsageDetails : TMemoryUsageDetailsClass;
+    TMimeTypedBuffer : TMimeTypedBufferClass;
+    TMouseInputEvent : TMouseInputEventClass;
+    TMouseWheelInputEvent : TMouseWheelInputEventClass;
+    TNewWindowWebContentsEvent : TNewWindowWebContentsEventClass;
+    TNotificationAction : TNotificationActionClass;
+    TNotificationResponse : TNotificationResponseClass;
+    TPaymentDiscount : TPaymentDiscountClass;
+    TPoint : TPointClass;
+    TPostBody : TPostBodyClass;
+    TPrinterInfo : TPrinterInfoClass;
+    TProcessMemoryInfo : TProcessMemoryInfoClass;
+    TProcessMetric : TProcessMetricClass;
+    TProduct : TProductClass;
+    TProductDiscount : TProductDiscountClass;
+    TProductSubscriptionPeriod : TProductSubscriptionPeriodClass;
+    TProtocolRequest : TProtocolRequestClass;
+    TProtocolResponse : TProtocolResponseClass;
+    TProtocolResponseUploadData : TProtocolResponseUploadDataClass;
+    TRectangle : TRectangleClass;
+    TReferrer : TReferrerClass;
+    TScrubberItem : TScrubberItemClass;
+    TSegmentedControlSegment : TSegmentedControlSegmentClass;
+    TSerialPort : TSerialPortClass;
+    TServiceWorkerInfo : TServiceWorkerInfoClass;
+    TSharedWorkerInfo : TSharedWorkerInfoClass;
+    TSharingItem : TSharingItemClass;
+    TShortcutDetails : TShortcutDetailsClass;
+    TSize : TSizeClass;
+    TTask : TTaskClass;
+    TThumbarButton : TThumbarButtonClass;
+    TTraceCategoriesAndOptions : TTraceCategoriesAndOptionsClass;
+    TTraceConfig : TTraceConfigClass;
+    TTransaction : TTransactionClass;
+    TUploadData : TUploadDataClass;
+    TUploadFile : TUploadFileClass;
+    TUploadRawData : TUploadRawDataClass;
+    TUserDefaultTypes : TUserDefaultTypesClass;
+    TWebRequestFilter : TWebRequestFilterClass;
+    TWebSource : TWebSourceClass;
+
+  Var
+    app: libelectron.TApp;
+    autoUpdater: libelectron.TAutoUpdater;
+    clipboard: libelectron.TClipboard;
+    contentTracing: libelectron.TContentTracing;
+    contextBridge: libelectron.TContextBridge;
+    crashReporter: libelectron.TCrashReporter;
+    desktopCapturer: libelectron.TDesktopCapturer;
+    dialog: libelectron.TDialog;
+    globalShortcut: libelectron.TGlobalShortcut;
+    inAppPurchase: libelectron.TInAppPurchase;
+    ipcMain: libelectron.TIpcMain;
+    ipcRenderer: libelectron.TIpcRenderer;
+    nativeImage: libelectron.TNativeImage;
+    nativeTheme: libelectron.TNativeTheme;
+    net: libelectron.TNet;
+    netLog: libelectron.TNetLog;
+    powerMonitor: libelectron.TPowerMonitor;
+    powerSaveBlocker: libelectron.TPowerSaveBlocker;
+    protocol: libelectron.TProtocol;
+    safeStorage: libelectron.TSafeStorage;
+    screen: libelectron.TScreen;
+    session: libelectron.TSession;
+    shell: libelectron.TShell;
+    systemPreferences: libelectron.TSystemPreferences;
+    webContents: libelectron.TWebContents;
+    webFrame: libelectron.TWebFrame;
+    webFrameMain: libelectron.TWebFrameMain;
+  end;
+
+
+  // Namespaces
+
+  TMainExports = class external name 'Object' (TJSObject)
+  Public
+  var
+    app : libelectron.TApp;
+    autoUpdater : libelectron.TAutoUpdater;
+    contentTracing : libelectron.TContentTracing;
+    desktopCapturer : libelectron.TDesktopCapturer;
+    dialog : libelectron.TDialog;
+    globalShortcut : libelectron.TGlobalShortcut;
+    inAppPurchase : libelectron.TInAppPurchase;
+    ipcMain : libelectron.TIpcMain;
+    nativeTheme : libelectron.TNativeTheme;
+    net : libelectron.TNet;
+    netLog : libelectron.TNetLog;
+    powerMonitor : libelectron.TPowerMonitor;
+    powerSaveBlocker : libelectron.TPowerSaveBlocker;
+    protocol : libelectron.TProtocol;
+    safeStorage : libelectron.TSafeStorage;
+    screen : libelectron.TScreen;
+    session : libelectron.TSession;
+    systemPreferences : libelectron.TSystemPreferences;
+    webContents : libelectron.TWebContents;
+    webFrameMain : libelectron.TWebFrameMain;
+
+    TBrowserView : TBrowserViewClass; external name 'BrowserView';
+    TBrowserWindow : TBrowserWindowClass; external name 'BrowserWindow';
+    TMenu : TMenuClass; external name 'Menu';
+    TMenuItem : TMenuItemClass; external name 'MenuItem';
+    TMessageChannelMain : TMessageChannelMainClass; external name 'MessageChannelMain';
+    TNotification : TNotificationClass; external name 'Notification';
+    TShareMenu : TShareMenuClass; external name 'ShareMenu';
+    TTouchBar : TTouchBarClass; external name 'TouchBar';
+    TTray : TTrayClass; external name 'Tray';
+    TApp : TAppClass; external name 'App';
+    TAutoUpdater : TAutoUpdaterClass; external name 'AutoUpdater';
+
+  end;
+
+  // Namespaces
+
+  TRendererExports = class external name 'Renderer' (TJSObject)
+  Public
+    TBrowserWindowProxy : TBrowserWindowProxyClass;
+    TContextBridge : TContextBridgeClass;
+    TIpcRenderer : TIpcRendererClass;
+    TWebFrame : TWebFrameClass;
+
+    contextBridge: libelectron.TContextBridge;
+    ipcRenderer: libelectron.TIpcRenderer;
+    webFrame: libelectron.TWebFrame;
+    shell: libelectron.TShell;
+    nativeImage : libelectron.TNativeImage;
+    crashReporter : libelectron.TCrashReporter;
+  end;
+
+  TPreloadExports = class external name 'Object' (TJSObject)
+  Public
+    clipboard : TClipboard;
+    contextBridge: TContextBridge;
+    crashReporter : TCrashReporter;
+    ipcRenderer: TIpcRenderer;
+    nativeImage : TNativeImage;
+    shell: TShell;
+    webFrame: TWebFrame;
+  end;
+
+
+  // Namespaces
+
+  TCrossProcessExports = class external name 'CrossProcessExports' (TJSObject)
+  Public
+    TBrowserView : TBrowserViewClass; external name 'BrowserView';
+    TBrowserWindow : TBrowserWindowClass; external name 'BrowserWindow';
+    TMenu : TMenuClass; external name 'Menu';
+    TMenuItem : TMenuItemClass; external name 'MenuItem';
+    TMessageChannelMain : TMessageChannelMainClass; external name 'MessageChannelMain';
+    TNotification : TNotificationClass; external name 'Notification';
+    TShareMenu : TShareMenuClass; external name 'ShareMenu';
+    TTouchBar : TTouchBarClass; external name 'TouchBar';
+    TTray : TTrayClass; external name 'Tray';
+    TApp : TAppClass; external name 'App';
+    TAutoUpdater : TAutoUpdaterClass; external name 'AutoUpdater';
+
+    TBrowserWindowProxy : TBrowserWindowProxyClass; external name 'BrowserWindowProxy';
+    TClientRequest : TClientRequestClass; external name 'ClientRequest';
+    TClipboard : TClipboardClass; external name 'Clipboard';
+    TCommandLine : TCommandLineClass; external name 'CommandLine';
+    TContentTracing : TContentTracingClass; external name 'ContentTracing';
+    TContextBridge : TContextBridgeClass; external name 'ContextBridge';
+    TCookies : TCookiesClass; external name 'Cookies';
+    TCrashReporter : TCrashReporterClass; external name 'CrashReporter';
+    TDebugger : TDebuggerClass; external name 'Debugger';
+    TDesktopCapturer : TDesktopCapturerClass; external name 'DesktopCapturer';
+    TDialog : TDialogClass; external name 'Dialog';
+    TDock : TDockClass; external name 'Dock';
+    TDownloadItem : TDownloadItemClass; external name 'DownloadItem';
+    TGlobalShortcut : TGlobalShortcutClass; external name 'GlobalShortcut';
+    TInAppPurchase : TInAppPurchaseClass; external name 'InAppPurchase';
+    TIncomingMessage : TIncomingMessageClass; external name 'IncomingMessage';
+    TIpcMain : TIpcMainClass; external name 'IpcMain';
+    TIpcRenderer : TIpcRendererClass; external name 'IpcRenderer';
+    TMessagePortMain : TMessagePortMainClass; external name 'MessagePortMain';
+    TNativeImage : TNativeImageClass; external name 'NativeImage';
+    TNativeTheme : TNativeThemeClass; external name 'NativeTheme';
+    TNet : TNetClass; external name 'Net';
+    TNetLog : TNetLogClass; external name 'NetLog';
+    TPowerMonitor : TPowerMonitorClass; external name 'PowerMonitor';
+    TPowerSaveBlocker : TPowerSaveBlockerClass; external name 'PowerSaveBlocker';
+    TProtocol : TProtocolClass; external name 'Protocol';
+    TSafeStorage : TSafeStorageClass; external name 'SafeStorage';
+    TScreen : TScreenClass; external name 'Screen';
+    TServiceWorkers : TServiceWorkersClass; external name 'ServiceWorkers';
+    TSession : TSessionClass; external name 'Session';
+    TShell : TShellClass; external name 'Shell';
+    TSystemPreferences : TSystemPreferencesClass; external name 'SystemPreferences';
+    TTouchBarButton : TTouchBarButtonClass; external name 'TouchBarButton';
+    TTouchBarColorPicker : TTouchBarColorPickerClass; external name 'TouchBarColorPicker';
+    TTouchBarGroup : TTouchBarGroupClass; external name 'TouchBarGroup';
+    TTouchBarLabel : TTouchBarLabelClass; external name 'TouchBarLabel';
+    TTouchBarOtherItemsProxy : TTouchBarOtherItemsProxyClass; external name 'TouchBarOtherItemsProxy';
+    TTouchBarPopover : TTouchBarPopoverClass; external name 'TouchBarPopover';
+    TTouchBarScrubber : TTouchBarScrubberClass; external name 'TouchBarScrubber';
+    TTouchBarSegmentedControl : TTouchBarSegmentedControlClass; external name 'TouchBarSegmentedControl';
+    TTouchBarSlider : TTouchBarSliderClass; external name 'TouchBarSlider';
+    TTouchBarSpacer : TTouchBarSpacerClass; external name 'TouchBarSpacer';
+    TWebContents : TWebContentsClass; external name 'WebContents';
+    TWebFrame : TWebFrameClass; external name 'WebFrame';
+    TWebFrameMain : TWebFrameMainClass; external name 'WebFrameMain';
+    TWebRequest : TWebRequestClass; external name 'WebRequest';
+    TAboutPanelOptionsOptions : TAboutPanelOptionsOptionsClass; external name 'AboutPanelOptionsOptions';
+    TAddRepresentationOptions : TAddRepresentationOptionsClass; external name 'AddRepresentationOptions';
+    TAnimationSettings : TAnimationSettingsClass; external name 'AnimationSettings';
+    TAppDetailsOptions : TAppDetailsOptionsClass; external name 'AppDetailsOptions';
+    TApplicationInfoForProtocolReturnValue : TApplicationInfoForProtocolReturnValueClass; external name 'ApplicationInfoForProtocolReturnValue';
+    TAuthenticationResponseDetails : TAuthenticationResponseDetailsClass; external name 'AuthenticationResponseDetails';
+    TAuthInfo : TAuthInfoClass; external name 'AuthInfo';
+    TAutoResizeOptions : TAutoResizeOptionsClass; external name 'AutoResizeOptions';
+    TBeforeSendResponse : TBeforeSendResponseClass; external name 'BeforeSendResponse';
+    TBitmapOptions : TBitmapOptionsClass; external name 'BitmapOptions';
+    TBlinkMemoryInfo : TBlinkMemoryInfoClass; external name 'BlinkMemoryInfo';
+    TBrowserViewConstructorOptions : TBrowserViewConstructorOptionsClass; external name 'BrowserViewConstructorOptions';
+    TBrowserWindowConstructorOptions : TBrowserWindowConstructorOptionsClass; external name 'BrowserWindowConstructorOptions';
+    TCertificateTrustDialogOptions : TCertificateTrustDialogOptionsClass; external name 'CertificateTrustDialogOptions';
+    TClearCodeCachesOptions : TClearCodeCachesOptionsClass; external name 'ClearCodeCachesOptions';
+    TClearStorageDataOptions : TClearStorageDataOptionsClass; external name 'ClearStorageDataOptions';
+    TClientRequestConstructorOptions : TClientRequestConstructorOptionsClass; external name 'ClientRequestConstructorOptions';
+    TConfig : TConfigClass; external name 'Config';
+    TConfigureHostResolverOptions : TConfigureHostResolverOptionsClass; external name 'ConfigureHostResolverOptions';
+    TConsoleMessageEvent : TConsoleMessageEventClass; external name 'ConsoleMessageEvent';
+    TContextMenuEvent : TContextMenuEventClass; external name 'ContextMenuEvent';
+    TContextMenuParams : TContextMenuParamsClass; external name 'ContextMenuParams';
+    TContinueActivityDetails : TContinueActivityDetailsClass; external name 'ContinueActivityDetails';
+    TCookiesGetFilter : TCookiesGetFilterClass; external name 'CookiesGetFilter';
+    TCookiesSetDetails : TCookiesSetDetailsClass; external name 'CookiesSetDetails';
+    TCrashReporterStartOptions : TCrashReporterStartOptionsClass; external name 'CrashReporterStartOptions';
+    TCreateFromBitmapOptions : TCreateFromBitmapOptionsClass; external name 'CreateFromBitmapOptions';
+    TCreateFromBufferOptions : TCreateFromBufferOptionsClass; external name 'CreateFromBufferOptions';
+    TCreateInterruptedDownloadOptions : TCreateInterruptedDownloadOptionsClass; external name 'CreateInterruptedDownloadOptions';
+    TData : TDataClass; external name 'Data';
+    TDetails : TDetailsClass; external name 'Details';
+    TDevicePermissionHandlerHandlerDetails : TDevicePermissionHandlerHandlerDetailsClass; external name 'DevicePermissionHandlerHandlerDetails';
+    TDidChangeThemeColorEvent : TDidChangeThemeColorEventClass; external name 'DidChangeThemeColorEvent';
+    TDidCreateWindowDetails : TDidCreateWindowDetailsClass; external name 'DidCreateWindowDetails';
+    TDidFailLoadEvent : TDidFailLoadEventClass; external name 'DidFailLoadEvent';
+    TDidFrameFinishLoadEvent : TDidFrameFinishLoadEventClass; external name 'DidFrameFinishLoadEvent';
+    TDidFrameNavigateEvent : TDidFrameNavigateEventClass; external name 'DidFrameNavigateEvent';
+    TDidNavigateEvent : TDidNavigateEventClass; external name 'DidNavigateEvent';
+    TDidNavigateInPageEvent : TDidNavigateInPageEventClass; external name 'DidNavigateInPageEvent';
+    TDidRedirectNavigationEvent : TDidRedirectNavigationEventClass; external name 'DidRedirectNavigationEvent';
+    TDidStartNavigationEvent : TDidStartNavigationEventClass; external name 'DidStartNavigationEvent';
+    TDisplayBalloonOptions : TDisplayBalloonOptionsClass; external name 'DisplayBalloonOptions';
+    TEnableNetworkEmulationOptions : TEnableNetworkEmulationOptionsClass; external name 'EnableNetworkEmulationOptions';
+    TFeedURLOptions : TFeedURLOptionsClass; external name 'FeedURLOptions';
+    TFileIconOptions : TFileIconOptionsClass; external name 'FileIconOptions';
+    TFindInPageOptions : TFindInPageOptionsClass; external name 'FindInPageOptions';
+    TFocusOptions : TFocusOptionsClass; external name 'FocusOptions';
+    TFoundInPageEvent : TFoundInPageEventClass; external name 'FoundInPageEvent';
+    TFrameCreatedDetails : TFrameCreatedDetailsClass; external name 'FrameCreatedDetails';
+    TFromPartitionOptions : TFromPartitionOptionsClass; external name 'FromPartitionOptions';
+    THandlerDetails : THandlerDetailsClass; external name 'HandlerDetails';
+    THeadersReceivedResponse : THeadersReceivedResponseClass; external name 'HeadersReceivedResponse';
+    THeapStatistics : THeapStatisticsClass; external name 'HeapStatistics';
+    THidDeviceAddedDetails : THidDeviceAddedDetailsClass; external name 'HidDeviceAddedDetails';
+    THidDeviceRemovedDetails : THidDeviceRemovedDetailsClass; external name 'HidDeviceRemovedDetails';
+    TIgnoreMouseEventsOptions : TIgnoreMouseEventsOptionsClass; external name 'IgnoreMouseEventsOptions';
+    TImportCertificateOptions : TImportCertificateOptionsClass; external name 'ImportCertificateOptions';
+    TInfo : TInfoClass; external name 'Info';
+    TInput : TInputClass; external name 'Input';
+    TInsertCSSOptions : TInsertCSSOptionsClass; external name 'InsertCSSOptions';
+    TIpcMessageEvent : TIpcMessageEventClass; external name 'IpcMessageEvent';
+    TItem : TItemClass; external name 'Item';
+    TJumpListSettings : TJumpListSettingsClass; external name 'JumpListSettings';
+    TLoadCommitEvent : TLoadCommitEventClass; external name 'LoadCommitEvent';
+    TLoadExtensionOptions : TLoadExtensionOptionsClass; external name 'LoadExtensionOptions';
+    TLoadFileOptions : TLoadFileOptionsClass; external name 'LoadFileOptions';
+    TLoadURLOptions : TLoadURLOptionsClass; external name 'LoadURLOptions';
+    TLoginItemSettings : TLoginItemSettingsClass; external name 'LoginItemSettings';
+    TLoginItemSettingsOptions : TLoginItemSettingsOptionsClass; external name 'LoginItemSettingsOptions';
+    TMenuItemConstructorOptions : TMenuItemConstructorOptionsClass; external name 'MenuItemConstructorOptions';
+    TMessageBoxOptions : TMessageBoxOptionsClass; external name 'MessageBoxOptions';
+    TMessageBoxReturnValue : TMessageBoxReturnValueClass; external name 'MessageBoxReturnValue';
+    TMessageBoxSyncOptions : TMessageBoxSyncOptionsClass; external name 'MessageBoxSyncOptions';
+    TMessageDetails : TMessageDetailsClass; external name 'MessageDetails';
+    TMessageEvent : TMessageEventClass; external name 'MessageEvent';
+    TMoveToApplicationsFolderOptions : TMoveToApplicationsFolderOptionsClass; external name 'MoveToApplicationsFolderOptions';
+    TNewWindowEvent : TNewWindowEventClass; external name 'NewWindowEvent';
+    TNotificationConstructorOptions : TNotificationConstructorOptionsClass; external name 'NotificationConstructorOptions';
+    TOnBeforeRedirectListenerDetails : TOnBeforeRedirectListenerDetailsClass; external name 'OnBeforeRedirectListenerDetails';
+    TOnBeforeRequestListenerDetails : TOnBeforeRequestListenerDetailsClass; external name 'OnBeforeRequestListenerDetails';
+    TOnBeforeSendHeadersListenerDetails : TOnBeforeSendHeadersListenerDetailsClass; external name 'OnBeforeSendHeadersListenerDetails';
+    TOnCompletedListenerDetails : TOnCompletedListenerDetailsClass; external name 'OnCompletedListenerDetails';
+    TOnErrorOccurredListenerDetails : TOnErrorOccurredListenerDetailsClass; external name 'OnErrorOccurredListenerDetails';
+    TOnHeadersReceivedListenerDetails : TOnHeadersReceivedListenerDetailsClass; external name 'OnHeadersReceivedListenerDetails';
+    TOnResponseStartedListenerDetails : TOnResponseStartedListenerDetailsClass; external name 'OnResponseStartedListenerDetails';
+    TOnSendHeadersListenerDetails : TOnSendHeadersListenerDetailsClass; external name 'OnSendHeadersListenerDetails';
+    TOpenDevToolsOptions : TOpenDevToolsOptionsClass; external name 'OpenDevToolsOptions';
+    TOpenDialogOptions : TOpenDialogOptionsClass; external name 'OpenDialogOptions';
+    TOpenDialogReturnValue : TOpenDialogReturnValueClass; external name 'OpenDialogReturnValue';
+    TOpenDialogSyncOptions : TOpenDialogSyncOptionsClass; external name 'OpenDialogSyncOptions';
+    TOpenExternalOptions : TOpenExternalOptionsClass; external name 'OpenExternalOptions';
+    TOptions : TOptionsClass; external name 'Options';
+    TPageFaviconUpdatedEvent : TPageFaviconUpdatedEventClass; external name 'PageFaviconUpdatedEvent';
+    TPageTitleUpdatedEvent : TPageTitleUpdatedEventClass; external name 'PageTitleUpdatedEvent';
+    TParameters : TParametersClass; external name 'Parameters';
+    TPayment : TPaymentClass; external name 'Payment';
+    TPermissionCheckHandlerHandlerDetails : TPermissionCheckHandlerHandlerDetailsClass; external name 'PermissionCheckHandlerHandlerDetails';
+    TPermissionRequestHandlerHandlerDetails : TPermissionRequestHandlerHandlerDetailsClass; external name 'PermissionRequestHandlerHandlerDetails';
+    TPluginCrashedEvent : TPluginCrashedEventClass; external name 'PluginCrashedEvent';
+    TPopupOptions : TPopupOptionsClass; external name 'PopupOptions';
+    TPreconnectOptions : TPreconnectOptionsClass; external name 'PreconnectOptions';
+    TPrintToPDFOptions : TPrintToPDFOptionsClass; external name 'PrintToPDFOptions';
+    TPrivileges : TPrivilegesClass; external name 'Privileges';
+    TProgressBarOptions : TProgressBarOptionsClass; external name 'ProgressBarOptions';
+    TProvider : TProviderClass; external name 'Provider';
+    TReadBookmark : TReadBookmarkClass; external name 'ReadBookmark';
+    TRegistrationCompletedDetails : TRegistrationCompletedDetailsClass; external name 'RegistrationCompletedDetails';
+    TRelaunchOptions : TRelaunchOptionsClass; external name 'RelaunchOptions';
+    TRenderProcessGoneDetails : TRenderProcessGoneDetailsClass; external name 'RenderProcessGoneDetails';
+    TRequest : TRequestClass; external name 'Request';
+    TResizeOptions : TResizeOptionsClass; external name 'ResizeOptions';
+    TResourceUsage : TResourceUsageClass; external name 'ResourceUsage';
+    TResponse : TResponseClass; external name 'Response';
+    TResult : TResultClass; external name 'Result';
+    TSaveDialogOptions : TSaveDialogOptionsClass; external name 'SaveDialogOptions';
+    TSaveDialogReturnValue : TSaveDialogReturnValueClass; external name 'SaveDialogReturnValue';
+    TSaveDialogSyncOptions : TSaveDialogSyncOptionsClass; external name 'SaveDialogSyncOptions';
+    TSelectHidDeviceDetails : TSelectHidDeviceDetailsClass; external name 'SelectHidDeviceDetails';
+    TSettings : TSettingsClass; external name 'Settings';
+    TSourcesOptions : TSourcesOptionsClass; external name 'SourcesOptions';
+    TSSLConfigConfig : TSSLConfigConfigClass; external name 'SSLConfigConfig';
+    TStartLoggingOptions : TStartLoggingOptionsClass; external name 'StartLoggingOptions';
+    TSystemMemoryInfo : TSystemMemoryInfoClass; external name 'SystemMemoryInfo';
+    TTitleOptions : TTitleOptionsClass; external name 'TitleOptions';
+    TToBitmapOptions : TToBitmapOptionsClass; external name 'ToBitmapOptions';
+    TToDataURLOptions : TToDataURLOptionsClass; external name 'ToDataURLOptions';
+    TToPNGOptions : TToPNGOptionsClass; external name 'ToPNGOptions';
+    TTouchBarButtonConstructorOptions : TTouchBarButtonConstructorOptionsClass; external name 'TouchBarButtonConstructorOptions';
+    TTouchBarColorPickerConstructorOptions : TTouchBarColorPickerConstructorOptionsClass; external name 'TouchBarColorPickerConstructorOptions';
+    TTouchBarConstructorOptions : TTouchBarConstructorOptionsClass; external name 'TouchBarConstructorOptions';
+    TTouchBarGroupConstructorOptions : TTouchBarGroupConstructorOptionsClass; external name 'TouchBarGroupConstructorOptions';
+    TTouchBarLabelConstructorOptions : TTouchBarLabelConstructorOptionsClass; external name 'TouchBarLabelConstructorOptions';
+    TTouchBarPopoverConstructorOptions : TTouchBarPopoverConstructorOptionsClass; external name 'TouchBarPopoverConstructorOptions';
+    TTouchBarScrubberConstructorOptions : TTouchBarScrubberConstructorOptionsClass; external name 'TouchBarScrubberConstructorOptions';
+    TTouchBarSegmentedControlConstructorOptions : TTouchBarSegmentedControlConstructorOptionsClass; external name 'TouchBarSegmentedControlConstructorOptions';
+    TTouchBarSliderConstructorOptions : TTouchBarSliderConstructorOptionsClass; external name 'TouchBarSliderConstructorOptions';
+    TTouchBarSpacerConstructorOptions : TTouchBarSpacerConstructorOptionsClass; external name 'TouchBarSpacerConstructorOptions';
+    TTraceBufferUsageReturnValue : TTraceBufferUsageReturnValueClass; external name 'TraceBufferUsageReturnValue';
+    TUpdateTargetUrlEvent : TUpdateTargetUrlEventClass; external name 'UpdateTargetUrlEvent';
+    TUploadProgress : TUploadProgressClass; external name 'UploadProgress';
+    TVisibleOnAllWorkspacesOptions : TVisibleOnAllWorkspacesOptionsClass; external name 'VisibleOnAllWorkspacesOptions';
+    TWebContentsPrintOptions : TWebContentsPrintOptionsClass; external name 'WebContentsPrintOptions';
+    TWebviewTagPrintOptions : TWebviewTagPrintOptionsClass; external name 'WebviewTagPrintOptions';
+    TWillNavigateEvent : TWillNavigateEventClass; external name 'WillNavigateEvent';
+    TWillResizeDetails : TWillResizeDetailsClass; external name 'WillResizeDetails';
+    TEditFlags : TEditFlagsClass; external name 'EditFlags';
+    TFoundInPageResult : TFoundInPageResultClass; external name 'FoundInPageResult';
+    TLaunchItems : TLaunchItemsClass; external name 'LaunchItems';
+    TMargins : TMarginsClass; external name 'Margins';
+    TMediaFlags : TMediaFlagsClass; external name 'MediaFlags';
+    TPageRanges : TPageRangesClass; external name 'PageRanges';
+    TParams : TParamsClass; external name 'Params';
+    TTitleBarOverlay : TTitleBarOverlayClass; external name 'TitleBarOverlay';
+    TWebPreferences : TWebPreferencesClass; external name 'WebPreferences';
+    TDefaultFontFamily : TDefaultFontFamilyClass; external name 'DefaultFontFamily';
+    TBluetoothDevice : TBluetoothDeviceClass; external name 'BluetoothDevice';
+    TCertificate : TCertificateClass; external name 'Certificate';
+    TCertificatePrincipal : TCertificatePrincipalClass; external name 'CertificatePrincipal';
+    TCookie : TCookieClass; external name 'Cookie';
+    TCPUUsage : TCPUUsageClass; external name 'CPUUsage';
+    TCrashReport : TCrashReportClass; external name 'CrashReport';
+    TCustomScheme : TCustomSchemeClass; external name 'CustomScheme';
+    TDesktopCapturerSource : TDesktopCapturerSourceClass; external name 'DesktopCapturerSource';
+    TDisplay : TDisplayClass; external name 'Display';
+    TEvent : TEventClass; external name 'Event';
+    TExtension : TExtensionClass; external name 'Extension';
+    TExtensionInfo : TExtensionInfoClass; external name 'ExtensionInfo';
+    TFileFilter : TFileFilterClass; external name 'FileFilter';
+    TFilePathWithHeaders : TFilePathWithHeadersClass; external name 'FilePathWithHeaders';
+    TGPUFeatureStatus : TGPUFeatureStatusClass; external name 'GPUFeatureStatus';
+    THIDDevice : THIDDeviceClass; external name 'HIDDevice';
+    TInputEvent : TInputEventClass; external name 'InputEvent';
+    TIOCounters : TIOCountersClass; external name 'IOCounters';
+    TIpcMainEvent : TIpcMainEventClass; external name 'IpcMainEvent';
+    TIpcMainInvokeEvent : TIpcMainInvokeEventClass; external name 'IpcMainInvokeEvent';
+    TIpcRendererEvent : TIpcRendererEventClass; external name 'IpcRendererEvent';
+    TJumpListCategory : TJumpListCategoryClass; external name 'JumpListCategory';
+    TJumpListItem : TJumpListItemClass; external name 'JumpListItem';
+    TKeyboardEvent : TKeyboardEventClass; external name 'KeyboardEvent';
+    TKeyboardInputEvent : TKeyboardInputEventClass; external name 'KeyboardInputEvent';
+    TMemoryInfo : TMemoryInfoClass; external name 'MemoryInfo';
+    TMemoryUsageDetails : TMemoryUsageDetailsClass; external name 'MemoryUsageDetails';
+    TMimeTypedBuffer : TMimeTypedBufferClass; external name 'MimeTypedBuffer';
+    TMouseInputEvent : TMouseInputEventClass; external name 'MouseInputEvent';
+    TMouseWheelInputEvent : TMouseWheelInputEventClass; external name 'MouseWheelInputEvent';
+    TNewWindowWebContentsEvent : TNewWindowWebContentsEventClass; external name 'NewWindowWebContentsEvent';
+    TNotificationAction : TNotificationActionClass; external name 'NotificationAction';
+    TNotificationResponse : TNotificationResponseClass; external name 'NotificationResponse';
+    TPaymentDiscount : TPaymentDiscountClass; external name 'PaymentDiscount';
+    TPoint : TPointClass; external name 'Point';
+    TPostBody : TPostBodyClass; external name 'PostBody';
+    TPrinterInfo : TPrinterInfoClass; external name 'PrinterInfo';
+    TProcessMemoryInfo : TProcessMemoryInfoClass; external name 'ProcessMemoryInfo';
+    TProcessMetric : TProcessMetricClass; external name 'ProcessMetric';
+    TProduct : TProductClass; external name 'Product';
+    TProductDiscount : TProductDiscountClass; external name 'ProductDiscount';
+    TProductSubscriptionPeriod : TProductSubscriptionPeriodClass; external name 'ProductSubscriptionPeriod';
+    TProtocolRequest : TProtocolRequestClass; external name 'ProtocolRequest';
+    TProtocolResponse : TProtocolResponseClass; external name 'ProtocolResponse';
+    TProtocolResponseUploadData : TProtocolResponseUploadDataClass; external name 'ProtocolResponseUploadData';
+    TRectangle : TRectangleClass; external name 'Rectangle';
+    TReferrer : TReferrerClass; external name 'Referrer';
+    TScrubberItem : TScrubberItemClass; external name 'ScrubberItem';
+    TSegmentedControlSegment : TSegmentedControlSegmentClass; external name 'SegmentedControlSegment';
+    TSerialPort : TSerialPortClass; external name 'SerialPort';
+    TServiceWorkerInfo : TServiceWorkerInfoClass; external name 'ServiceWorkerInfo';
+    TSharedWorkerInfo : TSharedWorkerInfoClass; external name 'SharedWorkerInfo';
+    TSharingItem : TSharingItemClass; external name 'SharingItem';
+    TShortcutDetails : TShortcutDetailsClass; external name 'ShortcutDetails';
+    TSize : TSizeClass; external name 'Size';
+    TTask : TTaskClass; external name 'Task';
+    TThumbarButton : TThumbarButtonClass; external name 'ThumbarButton';
+    TTraceCategoriesAndOptions : TTraceCategoriesAndOptionsClass; external name 'TraceCategoriesAndOptions';
+    TTraceConfig : TTraceConfigClass; external name 'TraceConfig';
+    TTransaction : TTransactionClass; external name 'Transaction';
+    TUploadData : TUploadDataClass; external name 'UploadData';
+    TUploadFile : TUploadFileClass; external name 'UploadFile';
+    TUploadRawData : TUploadRawDataClass; external name 'UploadRawData';
+    TUserDefaultTypes : TUserDefaultTypesClass; external name 'UserDefaultTypes';
+    TWebRequestFilter : TWebRequestFilterClass; external name 'WebRequestFilter';
+    TWebSource : TWebSourceClass; external name 'WebSource';
+
+    app: libelectron.TApp;
+    autoUpdater: libelectron.TAutoUpdater;
+    clipboard: libelectron.TClipboard;
+    contentTracing: libelectron.TContentTracing;
+    contextBridge: libelectron.TContextBridge;
+    crashReporter: libelectron.TCrashReporter;
+    desktopCapturer: libelectron.TDesktopCapturer;
+    dialog: libelectron.TDialog;
+    globalShortcut: libelectron.TGlobalShortcut;
+    inAppPurchase: libelectron.TInAppPurchase;
+    ipcMain: libelectron.TIpcMain;
+    ipcRenderer: libelectron.TIpcRenderer;
+    nativeTheme: libelectron.TNativeTheme;
+    net: libelectron.TNet;
+    netLog: libelectron.TNetLog;
+    powerMonitor: libelectron.TPowerMonitor;
+    powerSaveBlocker: libelectron.TPowerSaveBlocker;
+    protocol: libelectron.TProtocol;
+    safeStorage: libelectron.TSafeStorage;
+    screen: libelectron.TScreen;
+    shell: libelectron.TShell;
+    systemPreferences: libelectron.TSystemPreferences;
+    webFrame: libelectron.TWebFrame;
+  end;
+
+  TApp_on_listener = Procedure (event : TEvent; accessibilitySupportEnabled : boolean);
+  TApp_once_listener = Procedure (event : TEvent; accessibilitySupportEnabled : boolean);
+  TApp_addListener_listener = Procedure (event : TEvent; accessibilitySupportEnabled : boolean);
+  TApp_removeListener_listener = Procedure (event : TEvent; accessibilitySupportEnabled : boolean);
+  TApp_on_listener_callback = Procedure (isTrusted : boolean);
+  TApp_once_listener_callback = Procedure (isTrusted : boolean);
+  TApp_addListener_listener_callback = Procedure (isTrusted : boolean);
+  TApp_removeListener_listener_callback = Procedure (isTrusted : boolean);
+  TApp_getAppMetrics_Result = array of TProcessMetric;
+  TApp_importCertificate_callback = Procedure (result : Double);
+  TApp = class external name 'Object' (TJSObject)
+    FcommandLine : TCommandLine; external name 'commandLine';
+    Fdock : TDock; external name 'dock';
+    FisPackaged : boolean; external name 'isPackaged';
+    FrunningUnderARM64Translation : boolean; external name 'runningUnderARM64Translation';
+    FrunningUnderRosettaTranslation : boolean; external name 'runningUnderRosettaTranslation';
+    Procedure &exit(exitCode : Double); overload;
+    Procedure &exit; overload;
+    Function &on(event : String; listener : TJSFunction): TApp; overload;
+    Function &on(event : String; listener : TApp_on_listener): TApp; overload;
+    Function addListener(event : String; listener : TApp_addListener_listener): TApp; overload;
+    Function addListener(event : String; listener : TJSFunction): TApp; overload;
+    Procedure addRecentDocument(path : string);
+    Procedure clearRecentDocuments;
+    Procedure configureHostResolver(options : TConfigureHostResolverOptions);
+    Procedure disableDomainBlockingFor3DAPIs;
+    Procedure disableHardwareAcceleration;
+    Procedure enableSandbox;
+    Procedure focus(options : TFocusOptions); overload;
+    Procedure focus; overload;
+    Function getApplicationInfoForProtocol(url : string): TJSPromise;
+    Function getApplicationNameForProtocol(url : string): string;
+    Function getAppMetrics: TApp_getAppMetrics_Result;
+    Function getAppPath: string;
+    Function getBadgeCount: Double;
+    Function getCurrentActivityType: string;
+    Function getFileIcon(path : string; options : TFileIconOptions): TJSPromise; overload;
+    Function getFileIcon(path : string): TJSPromise; overload;
+    Function getGPUFeatureStatus: TGPUFeatureStatus;
+    Function getGPUInfo(infoType : jsvalue): TJSPromise;
+    Function getJumpListSettings: TJumpListSettings;
+    Function getLocale: string;
+    Function getLocaleCountryCode: string;
+    Function getLoginItemSettings(options : TLoginItemSettingsOptions): TLoginItemSettings; overload;
+    Function getLoginItemSettings: TLoginItemSettings; overload;
+    Function getName: string;
+    Function getPath(name : jsvalue): string;
+    Function getVersion: string;
+    Function hasSingleInstanceLock: boolean;
+    Procedure hide;
+    Procedure importCertificate(options : TImportCertificateOptions; callback : TApp_importCertificate_callback);
+    Procedure invalidateCurrentActivity;
+    Function isAccessibilitySupportEnabled: boolean;
+    Function isDefaultProtocolClient(protocol : string; path : string; args : array of string): boolean; overload;
+    Function isDefaultProtocolClient(protocol : string): boolean; overload;
+    Function isDefaultProtocolClient(protocol : string; path : string): boolean; overload;
+    Function isEmojiPanelSupported: boolean;
+    Function isInApplicationsFolder: boolean;
+    Function isReady: boolean;
+    Function isSecureKeyboardEntryEnabled: boolean;
+    Function isUnityRunning: boolean;
+    Function moveToApplicationsFolder(options : TMoveToApplicationsFolderOptions): boolean; overload;
+    Function moveToApplicationsFolder: boolean; overload;
+    Function once(event : String; listener : TApp_once_listener): TApp; overload;
+    Function once(event : String; listener : TJSFunction): TApp; overload;
+    Procedure quit;
+    Procedure relaunch(options : TRelaunchOptions); overload;
+    Procedure relaunch; overload;
+    Procedure releaseSingleInstanceLock;
+    Function removeAsDefaultProtocolClient(protocol : string; path : string; args : array of string): boolean; overload;
+    Function removeAsDefaultProtocolClient(protocol : string): boolean; overload;
+    Function removeAsDefaultProtocolClient(protocol : string; path : string): boolean; overload;
+    Function removeListener(event : String; listener : TApp_removeListener_listener): TApp; overload;
+    Function removeListener(event : String; listener : TJSFunction): TApp; overload;
+    Function requestSingleInstanceLock(additionalData : TJSObject): boolean; overload;
+    Function requestSingleInstanceLock: boolean; overload;
+    Procedure resignCurrentActivity;
+    Procedure setAboutPanelOptions(options : TAboutPanelOptionsOptions);
+    Procedure setAccessibilitySupportEnabled(enabled : boolean);
+    Procedure setActivationPolicy(policy : jsvalue);
+    Procedure setAppLogsPath(path : string); overload;
+    Procedure setAppLogsPath; overload;
+    Procedure setAppUserModelId(id : string);
+    Function setAsDefaultProtocolClient(protocol : string; path : string; args : array of string): boolean; overload;
+    Function setAsDefaultProtocolClient(protocol : string): boolean; overload;
+    Function setAsDefaultProtocolClient(protocol : string; path : string): boolean; overload;
+    Function setBadgeCount(count : Double): boolean; overload;
+    Function setBadgeCount: boolean; overload;
+    Procedure setJumpList(categories : jsvalue);
+    Procedure setLoginItemSettings(settings : TSettings);
+    Procedure setName(name : string);
+    Procedure setPath(name : string; path : string);
+    Procedure setSecureKeyboardEntryEnabled(enabled : boolean);
+    Procedure setUserActivity(&type : string; userInfo : JSValue; webpageURL : string); overload;
+    Procedure setUserActivity(&type : string; userInfo : JSValue); overload;
+    Function setUserTasks(tasks : array of TTask): boolean;
+    Procedure show;
+    Procedure showAboutPanel;
+    Procedure showEmojiPanel;
+    Function startAccessingSecurityScopedResource(bookmarkData : string): TJSFunction;
+    Procedure updateCurrentActivity(&type : string; userInfo : JSValue);
+    Function whenReady: TJSPromise;
+    accessibilitySupportEnabled : boolean;
+    applicationMenu : jsvalue;
+    badgeCount : Double;
+    Property commandLine : TCommandLine Read FcommandLine;
+    Property dock : TDock Read Fdock;
+    Property isPackaged : boolean Read FisPackaged;
+    name : string;
+    Property runningUnderARM64Translation : boolean Read FrunningUnderARM64Translation;
+    Property runningUnderRosettaTranslation : boolean Read FrunningUnderRosettaTranslation;
+    userAgentFallback : string;
+  end;
+
+  TAutoUpdater_on_listener = Procedure (error : TJSError);
+  TAutoUpdater_once_listener = Procedure (error : TJSError);
+  TAutoUpdater_addListener_listener = Procedure (error : TJSError);
+  TAutoUpdater_removeListener_listener = Procedure (error : TJSError);
+  // Ignoring duplicate type TAutoUpdater_on_listener (listener)
+  // Ignoring duplicate type TAutoUpdater_once_listener (listener)
+  // Ignoring duplicate type TAutoUpdater_addListener_listener (listener)
+  // Ignoring duplicate type TAutoUpdater_removeListener_listener (listener)
+  TAutoUpdater = class external name 'Object' (TJSObject)
+    Function &on(event : String; listener : TJSFunction): TAutoUpdater; overload;
+    Function &on(event : String; listener : TAutoUpdater_on_listener): TAutoUpdater; overload;
+    Function addListener(event : String; listener : TJSFunction): TAutoUpdater; overload;
+    Function addListener(event : String; listener : TAutoUpdater_addListener_listener): TAutoUpdater; overload;
+    Procedure checkForUpdates;
+    Function getFeedURL: string;
+    Function once(event : String; listener : TJSFunction): TAutoUpdater; overload;
+    Function once(event : String; listener : TAutoUpdater_once_listener): TAutoUpdater; overload;
+    Procedure quitAndInstall;
+    Function removeListener(event : String; listener : TJSFunction): TAutoUpdater; overload;
+    Function removeListener(event : String; listener : TAutoUpdater_removeListener_listener): TAutoUpdater; overload;
+    Procedure setFeedURL(options : TFeedURLOptions);
+  end;
+
+  TBluetoothDevice = class external name 'Object' (TJSObject)
+    deviceId : string;
+    deviceName : string;
+  end;
+
+  TCertificate = class external name 'Object' (TJSObject)
+    data : string;
+    fingerprint : string;
+    issuer : TCertificatePrincipal;
+    issuerCert : TCertificate;
+    issuerName : string;
+    serialNumber : string;
+    subject : TCertificatePrincipal;
+    subjectName : string;
+    validExpiry : Double;
+    validStart : Double;
+  end;
+
+  TCertificatePrincipal_organizations = array of string;
+  TCertificatePrincipal_organizationUnits = array of string;
+  TCertificatePrincipal = class external name 'Object' (TJSObject)
+    commonName : string;
+    country : string;
+    locality : string;
+    organizations : TCertificatePrincipal_organizations;
+    organizationUnits : TCertificatePrincipal_organizationUnits;
+    state : string;
+  end;
+
+  TClipboard_availableFormats_Result = array of string;
+  TClipboard = class external name 'Object' (TJSObject)
+    Function availableFormats(&type : jsvalue): TClipboard_availableFormats_Result; overload;
+    Function availableFormats: TClipboard_availableFormats_Result; overload;
+    Procedure clear(&type : jsvalue); overload;
+    Procedure clear; overload;
+    Function has(format : string; &type : jsvalue): boolean; overload;
+    Function has(format : string): boolean; overload;
+    Function read(format : string): string;
+    Function readBookmark: TReadBookmark;
+    Function readBuffer(format : string): TNJSBuffer;
+    Function readFindText: string;
+    Function readHTML(&type : jsvalue): string; overload;
+    Function readHTML: string; overload;
+    Function readImage(&type : jsvalue): TNativeImage; overload;
+    Function readImage: TNativeImage; overload;
+    Function readRTF(&type : jsvalue): string; overload;
+    Function readRTF: string; overload;
+    Function readText(&type : jsvalue): string; overload;
+    Function readText: string; overload;
+    Procedure write(data : TData; &type : jsvalue); overload;
+    Procedure write(data : TData); overload;
+    Procedure writeBookmark(title : string; url : string; &type : jsvalue); overload;
+    Procedure writeBookmark(title : string; url : string); overload;
+    Procedure writeBuffer(format : string; buffer : TNJSBuffer; &type : jsvalue); overload;
+    Procedure writeBuffer(format : string; buffer : TNJSBuffer); overload;
+    Procedure writeFindText(text : string);
+    Procedure writeHTML(markup : string; &type : jsvalue); overload;
+    Procedure writeHTML(markup : string); overload;
+    Procedure writeImage(image : TNativeImage; &type : jsvalue); overload;
+    Procedure writeImage(image : TNativeImage); overload;
+    Procedure writeRTF(text : string; &type : jsvalue); overload;
+    Procedure writeRTF(text : string); overload;
+    Procedure writeText(text : string; &type : jsvalue); overload;
+    Procedure writeText(text : string); overload;
+  end;
+
+  TContentTracing = class external name 'Object' (TJSObject)
+    Function getCategories: TJSPromise;
+    Function getTraceBufferUsage: TJSPromise;
+    Function startRecording(options : jsvalue): TJSPromise;
+    Function stopRecording(resultFilePath : string): TJSPromise; overload;
+    Function stopRecording: TJSPromise; overload;
+  end;
+
+  TContextBridge = class external name 'Object' (TJSObject)
+    Procedure exposeInMainWorld(apiKey : string; api : JSValue);
+  end;
+
+  TCookie = class external name 'Object' (TJSObject)
+    domain : string;
+    expirationDate : Double;
+    hostOnly : boolean;
+    httpOnly : boolean;
+    name : string;
+    path : string;
+    sameSite : jsvalue;
+    secure : boolean;
+    session : boolean;
+    value : string;
+  end;
+
+  TCPUUsage = class external name 'Object' (TJSObject)
+    idleWakeupsPerSecond : Double;
+    percentCPUUsage : Double;
+  end;
+
+  TCrashReport = class external name 'Object' (TJSObject)
+    date : TJSDate;
+    id : string;
+  end;
+
+  TCrashReporter_getUploadedReports_Result = array of TCrashReport;
+  TCrashReporter = class external name 'Object' (TJSObject)
+    Procedure addExtraParameter(key : string; value : string);
+    Function getLastCrashReport: TCrashReport;
+    Function getParameters: TJSObject;
+    Function getUploadedReports: TCrashReporter_getUploadedReports_Result;
+    Function getUploadToServer: boolean;
+    Procedure removeExtraParameter(key : string);
+    Procedure setUploadToServer(uploadToServer : boolean);
+    Procedure start(options : TCrashReporterStartOptions);
+  end;
+
+  TCustomScheme = class external name 'Object' (TJSObject)
+    privileges : TPrivileges;
+    scheme : string;
+  end;
+
+  TDesktopCapturer = class external name 'Object' (TJSObject)
+    Function getSources(options : TSourcesOptions): TJSPromise;
+  end;
+
+  TDesktopCapturerSource = class external name 'Object' (TJSObject)
+    appIcon : TNativeImage;
+    display_id : string;
+    id : string;
+    name : string;
+    thumbnail : TNativeImage;
+  end;
+
+  TDialog = class external name 'Object' (TJSObject)
+    Function showCertificateTrustDialog(browserWindow : TBrowserWindow; options : TCertificateTrustDialogOptions): TJSPromise; overload;
+    Function showCertificateTrustDialog(options : TCertificateTrustDialogOptions): TJSPromise; overload;
+    Procedure showErrorBox(title : string; content : string);
+    Function showMessageBox(browserWindow : TBrowserWindow; options : TMessageBoxOptions): TJSPromise; overload;
+    Function showMessageBox(options : TMessageBoxOptions): TJSPromise; overload;
+    Function showMessageBoxSync(browserWindow : TBrowserWindow; options : TMessageBoxSyncOptions): Double; overload;
+    Function showMessageBoxSync(options : TMessageBoxSyncOptions): Double; overload;
+    Function showOpenDialog(browserWindow : TBrowserWindow; options : TOpenDialogOptions): TJSPromise; overload;
+    Function showOpenDialog(options : TOpenDialogOptions): TJSPromise; overload;
+    Function showOpenDialogSync(browserWindow : TBrowserWindow; options : TOpenDialogSyncOptions): jsvalue; overload;
+    Function showOpenDialogSync(options : TOpenDialogSyncOptions): jsvalue; overload;
+    Function showSaveDialog(browserWindow : TBrowserWindow; options : TSaveDialogOptions): TJSPromise; overload;
+    Function showSaveDialog(options : TSaveDialogOptions): TJSPromise; overload;
+    Function showSaveDialogSync(browserWindow : TBrowserWindow; options : TSaveDialogSyncOptions): jsvalue; overload;
+    Function showSaveDialogSync(options : TSaveDialogSyncOptions): jsvalue; overload;
+  end;
+
+  TDisplay = class external name 'Object' (TJSObject)
+    accelerometerSupport : jsvalue;
+    bounds : TRectangle;
+    colorDepth : Double;
+    colorSpace : string;
+    depthPerComponent : Double;
+    displayFrequency : Double;
+    id : Double;
+    internal : boolean;
+    monochrome : boolean;
+    rotation : Double;
+    scaleFactor : Double;
+    size : TSize;
+    touchSupport : jsvalue;
+    workArea : TRectangle;
+    workAreaSize : TSize;
+  end;
+
+  TEvent_preventDefault = Procedure;
+  TEvent = class external name 'Object' (TJSObject)
+    preventDefault : TEvent_preventDefault;
+  end;
+
+  TExtension = class external name 'Object' (TJSObject)
+    id : string;
+    manifest : JSValue;
+    name : string;
+    path : string;
+    url : string;
+    version : string;
+  end;
+
+  TExtensionInfo = class external name 'Object' (TJSObject)
+    name : string;
+    version : string;
+  end;
+
+  TFileFilter_extensions = array of string;
+  TFileFilter = class external name 'Object' (TJSObject)
+    extensions : TFileFilter_extensions;
+    name : string;
+  end;
+
+  TFilePathWithHeaders = class external name 'Object' (TJSObject)
+    headers : TJSObject;
+    path : string;
+  end;
+
+  TGlobalShortcut_register_callback = Procedure;
+  TGlobalShortcut_registerAll_callback = Procedure;
+  TGlobalShortcut = class external name 'Object' (TJSObject)
+    Function isRegistered(accelerator : TAccelerator): boolean;
+    Function register(accelerator : TAccelerator; callback : TGlobalShortcut_register_callback): boolean;
+    Procedure registerAll(accelerators : array of string; callback : TGlobalShortcut_registerAll_callback);
+    Procedure unregister(accelerator : TAccelerator);
+    Procedure unregisterAll;
+  end;
+
+  TGPUFeatureStatus = class external name 'Object' (TJSObject)
+    _2d_canvas : string; external name '2d_canvas';
+    flash_3d : string;
+    flash_stage3d : string;
+    flash_stage3d_baseline : string;
+    gpu_compositing : string;
+    multiple_raster_threads : string;
+    native_gpu_memory_buffers : string;
+    rasterization : string;
+    video_decode : string;
+    video_encode : string;
+    vpx_decode : string;
+    webgl : string;
+    webgl2 : string;
+  end;
+
+  THIDDevice = class external name 'Object' (TJSObject)
+    deviceId : string;
+    guid : string;
+    name : string;
+    productId : Double;
+    serialNumber : string;
+    vendorId : Double;
+  end;
+
+  TInAppPurchase = class external name 'Object' (TJSObject)
+    Function &on(event : String; listener : TJSFunction): TInAppPurchase;
+    Function addListener(event : String; listener : TJSFunction): TInAppPurchase;
+    Function canMakePayments: boolean;
+    Procedure finishAllTransactions;
+    Procedure finishTransactionByDate(date : string);
+    Function getProducts(productIDs : array of string): TJSPromise;
+    Function getReceiptURL: string;
+    Function once(event : String; listener : TJSFunction): TInAppPurchase;
+    Function purchaseProduct(productID : string; quantity : Double): TJSPromise; overload;
+    Function purchaseProduct(productID : string): TJSPromise; overload;
+    Function removeListener(event : String; listener : TJSFunction): TInAppPurchase;
+    Procedure restoreCompletedTransactions;
+  end;
+
+  TInputEvent_modifiers = array of String;
+  TInputEvent = class external name 'Object' (TJSObject)
+    modifiers : TInputEvent_modifiers;
+  end;
+
+  TIOCounters = class external name 'Object' (TJSObject)
+    otherOperationCount : Double;
+    otherTransferCount : Double;
+    readOperationCount : Double;
+    readTransferCount : Double;
+    writeOperationCount : Double;
+    writeTransferCount : Double;
+  end;
+
+  TIpcMain_handle_listener = Function (event : TIpcMainInvokeEvent; args : array of JSValue): jsvalue;
+  TIpcMain_handleOnce_listener = Function (event : TIpcMainInvokeEvent; args : array of JSValue): jsvalue;
+  TIpcMain_on_listener = Procedure (event : TIpcMainEvent; args : array of JSValue);
+  TIpcMain_once_listener = Procedure (event : TIpcMainEvent; args : array of JSValue);
+  TIpcMain_removeListener_listener = Procedure (args : array of JSValue);
+  TIpcMain = class external name 'Object' (TJSObject)
+    Function &on(channel : string; listener : TIpcMain_on_listener): TIpcMain;
+    Procedure handle(channel : string; listener : TIpcMain_handle_listener);
+    Procedure handleOnce(channel : string; listener : TIpcMain_handleOnce_listener);
+    Function once(channel : string; listener : TIpcMain_once_listener): TIpcMain;
+    Function removeAllListeners(channel : string): TIpcMain; overload;
+    Function removeAllListeners: TIpcMain; overload;
+    Procedure removeHandler(channel : string);
+    Function removeListener(channel : string; listener : TIpcMain_removeListener_listener): TIpcMain;
+  end;
+
+  TIpcMainEvent_ports = array of TMessagePortMain;
+  TIpcMainEvent = class external name 'Object' (TJSObject)
+    FsenderFrame : TWebFrameMain; external name 'senderFrame';
+    frameId : Double;
+    ports : TIpcMainEvent_ports;
+    processId : Double;
+    reply : TJSFunction;
+    returnValue : JSValue;
+    sender : TWebContents;
+    Property senderFrame : TWebFrameMain Read FsenderFrame;
+  end;
+
+  TIpcMainInvokeEvent = class external name 'Object' (TJSObject)
+    FsenderFrame : TWebFrameMain; external name 'senderFrame';
+    frameId : Double;
+    processId : Double;
+    sender : TWebContents;
+    Property senderFrame : TWebFrameMain Read FsenderFrame;
+  end;
+
+  TIpcRenderer_on_listener = Procedure (event : TIpcRendererEvent; args : array of JSValue);
+  TIpcRenderer_once_listener = Procedure (event : TIpcRendererEvent; args : array of JSValue);
+  TIpcRenderer_removeListener_listener = Procedure (args : array of JSValue);
+  TIpcRenderer = class external name 'Object' (TJSObject)
+    Function &on(channel : string; listener : TIpcRenderer_on_listener): TIpcRenderer;
+    Function invoke(channel : string; args : array of JSValue): TJSPromise;
+    Function once(channel : string; listener : TIpcRenderer_once_listener): TIpcRenderer;
+    Procedure postMessage(channel : string; message : JSValue; transfer : array of TJSMessagePort); overload;
+    Procedure postMessage(channel : string; message : JSValue); overload;
+    Function removeAllListeners(channel : string): TIpcRenderer;
+    Function removeListener(channel : string; listener : TIpcRenderer_removeListener_listener): TIpcRenderer;
+    Procedure send(channel : string; args : array of JSValue);
+    Function sendSync(channel : string; args : array of JSValue): JSValue;
+    Procedure sendTo(webContentsId : Double; channel : string; args : array of JSValue);
+    Procedure sendToHost(channel : string; args : array of JSValue);
+  end;
+
+  TIpcRendererEvent_ports = array of TJSMessagePort;
+  TIpcRendererEvent = class external name 'Object' (TJSObject)
+    ports : TIpcRendererEvent_ports;
+    sender : TIpcRenderer;
+    senderId : Double;
+  end;
+
+  TJumpListCategory_items = array of TJumpListItem;
+  TJumpListCategory = class external name 'Object' (TJSObject)
+    items : TJumpListCategory_items;
+    name : string;
+    &type : jsvalue;external name 'type';
+  end;
+
+  TJumpListItem = class external name 'Object' (TJSObject)
+    args : string;
+    description : string;
+    iconIndex : Double;
+    iconPath : string;
+    path : string;
+    &program : string;external name 'program';
+    title : string;
+    &type : jsvalue;external name 'type';
+    workingDirectory : string;
+  end;
+
+  TKeyboardEvent = class external name 'Object' (TJSObject)
+    altKey : boolean;
+    ctrlKey : boolean;
+    metaKey : boolean;
+    shiftKey : boolean;
+    triggeredByAccelerator : boolean;
+  end;
+
+  TKeyboardInputEvent = class external name 'Object' (TJSObject)
+    keyCode : string;
+    &type : jsvalue;external name 'type';
+  end;
+
+  TMemoryInfo = class external name 'Object' (TJSObject)
+    peakWorkingSetSize : Double;
+    privateBytes : Double;
+    workingSetSize : Double;
+  end;
+
+  TMemoryUsageDetails = class external name 'Object' (TJSObject)
+    count : Double;
+    liveSize : Double;
+    size : Double;
+  end;
+
+  TMimeTypedBuffer = class external name 'Object' (TJSObject)
+    charset : string;
+    data : TNJSBuffer;
+    mimeType : string;
+  end;
+
+  TMouseInputEvent = class external name 'Object' (TJSObject)
+    button : jsvalue;
+    clickCount : Double;
+    globalX : Double;
+    globalY : Double;
+    movementX : Double;
+    movementY : Double;
+    &type : jsvalue;external name 'type';
+    x : Double;
+    y : Double;
+  end;
+
+  TMouseWheelInputEvent = class external name 'Object' (TJSObject)
+    accelerationRatioX : Double;
+    accelerationRatioY : Double;
+    canScroll : boolean;
+    deltaX : Double;
+    deltaY : Double;
+    hasPreciseScrollingDeltas : boolean;
+    &type : String;external name 'type';
+    wheelTicksX : Double;
+    wheelTicksY : Double;
+  end;
+
+  TNativeTheme = class external name 'Object' (TJSObject)
+    FshouldUseDarkColors : boolean; external name 'shouldUseDarkColors';
+    FshouldUseHighContrastColors : boolean; external name 'shouldUseHighContrastColors';
+    FshouldUseInvertedColorScheme : boolean; external name 'shouldUseInvertedColorScheme';
+    Function &on(event : String; listener : TJSFunction): TNativeTheme;
+    Function addListener(event : String; listener : TJSFunction): TNativeTheme;
+    Function once(event : String; listener : TJSFunction): TNativeTheme;
+    Function removeListener(event : String; listener : TJSFunction): TNativeTheme;
+    Property shouldUseDarkColors : boolean Read FshouldUseDarkColors;
+    Property shouldUseHighContrastColors : boolean Read FshouldUseHighContrastColors;
+    Property shouldUseInvertedColorScheme : boolean Read FshouldUseInvertedColorScheme;
+    themeSource : jsvalue;
+  end;
+
+  TNet = class external name 'Object' (TJSObject)
+    Fonline : boolean; external name 'online';
+    Function isOnline: boolean;
+    Function request(options : jsvalue): TClientRequest;
+    Property online : boolean Read Fonline;
+  end;
+
+  TNetLog = class external name 'Object' (TJSObject)
+    FcurrentlyLogging : boolean; external name 'currentlyLogging';
+    Function startLogging(path : string; options : TStartLoggingOptions): TJSPromise; overload;
+    Function startLogging(path : string): TJSPromise; overload;
+    Function stopLogging: TJSPromise;
+    Property currentlyLogging : boolean Read FcurrentlyLogging;
+  end;
+
+  TNewWindowWebContentsEvent = class external name 'Object' (TJSObject)
+    newGuest : TBrowserWindow;
+  end;
+
+  TNotificationAction = class external name 'Object' (TJSObject)
+    text : string;
+    &type : String;external name 'type';
+  end;
+
+  TNotificationResponse = class external name 'Object' (TJSObject)
+    actionIdentifier : string;
+    date : Double;
+    identifier : string;
+    userInfo : TJSObject;
+    userText : string;
+  end;
+
+  TPaymentDiscount = class external name 'Object' (TJSObject)
+    identifier : string;
+    keyIdentifier : string;
+    nonce : string;
+    signature : string;
+    timestamp : Double;
+  end;
+
+  TPoint = class external name 'Object' (TJSObject)
+    x : Double;
+    y : Double;
+  end;
+
+  TPostBody_data = array of TJSObject;
+  TPostBody = class external name 'Object' (TJSObject)
+    boundary : string;
+    contentType : string;
+    data : TPostBody_data;
+  end;
+
+  TPowerMonitor = class external name 'Object' (TJSObject)
+    Function &on(event : String; listener : TJSFunction): TPowerMonitor;
+    Function addListener(event : String; listener : TJSFunction): TPowerMonitor;
+    Function getSystemIdleState(idleThreshold : Double): jsvalue;
+    Function getSystemIdleTime: Double;
+    Function isOnBatteryPower: boolean;
+    Function once(event : String; listener : TJSFunction): TPowerMonitor;
+    Function removeListener(event : String; listener : TJSFunction): TPowerMonitor;
+    onBatteryPower : boolean;
+  end;
+
+  TPowerSaveBlocker = class external name 'Object' (TJSObject)
+    Function isStarted(id : Double): boolean;
+    Function start(&type : jsvalue): Double;
+    Procedure stop(id : Double);
+  end;
+
+  TPrinterInfo = class external name 'Object' (TJSObject)
+    description : string;
+    displayName : string;
+    isDefault : boolean;
+    name : string;
+    options : TOptions;
+    status : Double;
+  end;
+
+  TProcessMemoryInfo = class external name 'Object' (TJSObject)
+    _private : Double;external name 'private';
+    residentSet : Double;
+    shared : Double;
+  end;
+
+  TProcessMetric = class external name 'Object' (TJSObject)
+    cpu : TCPUUsage;
+    creationTime : Double;
+    integrityLevel : jsvalue;
+    memory : TMemoryInfo;
+    name : string;
+    pid : Double;
+    sandboxed : boolean;
+    serviceName : string;
+    &type : jsvalue;external name 'type';
+  end;
+
+  TProduct_contentLengths = array of Double;
+  TProduct_discounts = array of TProductDiscount;
+  TProduct_downloadContentLengths = array of Double;
+  TProduct = class external name 'Object' (TJSObject)
+    contentLengths : TProduct_contentLengths;
+    contentVersion : string;
+    currencyCode : string;
+    discounts : TProduct_discounts;
+    downloadContentLengths : TProduct_downloadContentLengths;
+    downloadContentVersion : string;
+    formattedPrice : string;
+    introductoryPrice : TProductDiscount;
+    isDownloadable : boolean;
+    localizedDescription : string;
+    localizedTitle : string;
+    price : Double;
+    productIdentifier : string;
+    subscriptionGroupIdentifier : string;
+    subscriptionPeriod : TProductSubscriptionPeriod;
+  end;
+
+  TProductDiscount = class external name 'Object' (TJSObject)
+    identifier : string;
+    numberOfPeriods : Double;
+    paymentMode : jsvalue;
+    price : Double;
+    priceLocale : string;
+    subscriptionPeriod : TProductSubscriptionPeriod;
+    &type : Double;external name 'type';
+  end;
+
+  TProductSubscriptionPeriod = class external name 'Object' (TJSObject)
+    numberOfUnits : Double;
+    &unit : jsvalue;external name 'unit';
+  end;
+
+  TProtocol_interceptBufferProtocol_handler_callback = Procedure (response : jsvalue);
+  TProtocol_interceptBufferProtocol_handler = Procedure (request : TProtocolRequest; callback : TProtocol_interceptBufferProtocol_handler_callback);
+  TProtocol_interceptFileProtocol_handler_callback = Procedure (response : jsvalue);
+  TProtocol_interceptFileProtocol_handler = Procedure (request : TProtocolRequest; callback : TProtocol_interceptFileProtocol_handler_callback);
+  TProtocol_interceptHttpProtocol_handler_callback = Procedure (response : TProtocolResponse);
+  TProtocol_interceptHttpProtocol_handler = Procedure (request : TProtocolRequest; callback : TProtocol_interceptHttpProtocol_handler_callback);
+  TProtocol_interceptStreamProtocol_handler_callback = Procedure (response : jsvalue);
+  TProtocol_interceptStreamProtocol_handler = Procedure (request : TProtocolRequest; callback : TProtocol_interceptStreamProtocol_handler_callback);
+  TProtocol_interceptStringProtocol_handler_callback = Procedure (response : jsvalue);
+  TProtocol_interceptStringProtocol_handler = Procedure (request : TProtocolRequest; callback : TProtocol_interceptStringProtocol_handler_callback);
+  TProtocol_registerBufferProtocol_handler_callback = Procedure (response : jsvalue);
+  TProtocol_registerBufferProtocol_handler = Procedure (request : TProtocolRequest; callback : TProtocol_registerBufferProtocol_handler_callback);
+  TProtocol_registerFileProtocol_handler_callback = Procedure (response : jsvalue);
+  TProtocol_registerFileProtocol_handler = Procedure (request : TProtocolRequest; callback : TProtocol_registerFileProtocol_handler_callback);
+  TProtocol_registerHttpProtocol_handler_callback = Procedure (response : TProtocolResponse);
+  TProtocol_registerHttpProtocol_handler = Procedure (request : TProtocolRequest; callback : TProtocol_registerHttpProtocol_handler_callback);
+  TProtocol_registerStreamProtocol_handler_callback = Procedure (response : jsvalue);
+  TProtocol_registerStreamProtocol_handler = Procedure (request : TProtocolRequest; callback : TProtocol_registerStreamProtocol_handler_callback);
+  TProtocol_registerStringProtocol_handler_callback = Procedure (response : jsvalue);
+  TProtocol_registerStringProtocol_handler = Procedure (request : TProtocolRequest; callback : TProtocol_registerStringProtocol_handler_callback);
+  TProtocol = class external name 'Object' (TJSObject)
+    Function interceptBufferProtocol(scheme : string; handler : TProtocol_interceptBufferProtocol_handler): boolean;
+    Function interceptFileProtocol(scheme : string; handler : TProtocol_interceptFileProtocol_handler): boolean;
+    Function interceptHttpProtocol(scheme : string; handler : TProtocol_interceptHttpProtocol_handler): boolean;
+    Function interceptStreamProtocol(scheme : string; handler : TProtocol_interceptStreamProtocol_handler): boolean;
+    Function interceptStringProtocol(scheme : string; handler : TProtocol_interceptStringProtocol_handler): boolean;
+    Function isProtocolIntercepted(scheme : string): boolean;
+    Function isProtocolRegistered(scheme : string): boolean;
+    Function registerBufferProtocol(scheme : string; handler : TProtocol_registerBufferProtocol_handler): boolean;
+    Function registerFileProtocol(scheme : string; handler : TProtocol_registerFileProtocol_handler): boolean;
+    Function registerHttpProtocol(scheme : string; handler : TProtocol_registerHttpProtocol_handler): boolean;
+    Procedure registerSchemesAsPrivileged(customSchemes : array of TCustomScheme);
+    Function registerStreamProtocol(scheme : string; handler : TProtocol_registerStreamProtocol_handler): boolean;
+    Function registerStringProtocol(scheme : string; handler : TProtocol_registerStringProtocol_handler): boolean;
+    Function uninterceptProtocol(scheme : string): boolean;
+    Function unregisterProtocol(scheme : string): boolean;
+  end;
+
+  TProtocolRequest_uploadData = array of TUploadData;
+  TProtocolRequest = class external name 'Object' (TJSObject)
+    headers : TJSObject;
+    method : string;
+    referrer : string;
+    uploadData : TProtocolRequest_uploadData;
+    url : string;
+  end;
+
+  TProtocolResponse = class external name 'Object' (TJSObject)
+    charset : string;
+    data : jsvalue;
+    error : Double;
+    headers : TJSObject;
+    method : string;
+    mimeType : string;
+    path : string;
+    referrer : string;
+    session : TSession;
+    statusCode : Double;
+    uploadData : TProtocolResponseUploadData;
+    url : string;
+  end;
+
+  TProtocolResponseUploadData = class external name 'Object' (TJSObject)
+    contentType : string;
+    data : jsvalue;
+  end;
+
+  TRectangle = class external name 'Object' (TJSObject)
+    height : Double;
+    width : Double;
+    x : Double;
+    y : Double;
+  end;
+
+  TReferrer = class external name 'Object' (TJSObject)
+    policy : jsvalue;
+    url : string;
+  end;
+
+  TSafeStorage = class external name 'Object' (TJSObject)
+    Function decryptString(encrypted : TNJSBuffer): string;
+    Function encryptString(plainText : string): TNJSBuffer;
+    Function isEncryptionAvailable: boolean;
+  end;
+
+  TScreen_on_listener = Procedure (event : TEvent; newDisplay : TDisplay);
+  TScreen_once_listener = Procedure (event : TEvent; newDisplay : TDisplay);
+  TScreen_addListener_listener = Procedure (event : TEvent; newDisplay : TDisplay);
+  TScreen_removeListener_listener = Procedure (event : TEvent; newDisplay : TDisplay);
+  TScreen_getAllDisplays_Result = array of TDisplay;
+  TScreen = class external name 'Object' (TJSObject)
+    Function &on(event : String; listener : TScreen_on_listener): TScreen; overload;
+    Function addListener(event : String; listener : TScreen_addListener_listener): TScreen; overload;
+    Function dipToScreenPoint(point : TPoint): TPoint;
+    Function dipToScreenRect(window : jsvalue; rect : TRectangle): TRectangle;
+    Function getAllDisplays: TScreen_getAllDisplays_Result;
+    Function getCursorScreenPoint: TPoint;
+    Function getDisplayMatching(rect : TRectangle): TDisplay;
+    Function getDisplayNearestPoint(point : TPoint): TDisplay;
+    Function getPrimaryDisplay: TDisplay;
+    Function once(event : String; listener : TScreen_once_listener): TScreen; overload;
+    Function removeListener(event : String; listener : TScreen_removeListener_listener): TScreen; overload;
+    Function screenToDipPoint(point : TPoint): TPoint;
+    Function screenToDipRect(window : jsvalue; rect : TRectangle): TRectangle;
+  end;
+
+  TScrubberItem = class external name 'Object' (TJSObject)
+    icon : TNativeImage;
+    &label : string;external name 'label';
+  end;
+
+  TSegmentedControlSegment = class external name 'Object' (TJSObject)
+    enabled : boolean;
+    icon : TNativeImage;
+    &label : string;external name 'label';
+  end;
+
+  TSerialPort = class external name 'Object' (TJSObject)
+    deviceInstanceId : string;
+    displayName : string;
+    portId : string;
+    portName : string;
+    productId : string;
+    serialNumber : string;
+    usbDriverName : string;
+    vendorId : string;
+  end;
+
+  TServiceWorkerInfo = class external name 'Object' (TJSObject)
+    renderProcessId : Double;
+    scope : string;
+    scriptUrl : string;
+  end;
+
+  TSharedWorkerInfo = class external name 'Object' (TJSObject)
+    id : string;
+    url : string;
+  end;
+
+  TSharingItem_filePaths = array of string;
+  TSharingItem_texts = array of string;
+  TSharingItem_urls = array of string;
+  TSharingItem = class external name 'Object' (TJSObject)
+    filePaths : TSharingItem_filePaths;
+    texts : TSharingItem_texts;
+    urls : TSharingItem_urls;
+  end;
+
+  TShell = class external name 'Object' (TJSObject)
+    Procedure beep;
+    Function openExternal(url : string; options : TOpenExternalOptions): TJSPromise; overload;
+    Function openExternal(url : string): TJSPromise; overload;
+    Function openPath(path : string): TJSPromise;
+    Function readShortcutLink(shortcutPath : string): TShortcutDetails;
+    Procedure showItemInFolder(fullPath : string);
+    Function trashItem(path : string): TJSPromise;
+    Function writeShortcutLink(shortcutPath : string; operation : jsvalue; options : TShortcutDetails): boolean; overload;
+    Function writeShortcutLink(shortcutPath : string; options : TShortcutDetails): boolean; overload;
+  end;
+
+  TShortcutDetails = class external name 'Object' (TJSObject)
+    appUserModelId : string;
+    args : string;
+    cwd : string;
+    description : string;
+    icon : string;
+    iconIndex : Double;
+    target : string;
+    toastActivatorClsid : string;
+  end;
+
+  TSize = class external name 'Object' (TJSObject)
+    height : Double;
+    width : Double;
+  end;
+
+  TSystemPreferences_on_listener = Procedure (event : TEvent; newColor : string);
+  TSystemPreferences_once_listener = Procedure (event : TEvent; newColor : string);
+  TSystemPreferences_addListener_listener = Procedure (event : TEvent; newColor : string);
+  TSystemPreferences_removeListener_listener = Procedure (event : TEvent; newColor : string);
+  TSystemPreferences_getUserDefault_Result = array of TUserDefaultTypes;
+  TSystemPreferences_subscribeLocalNotification_callback = Procedure (event : string; userInfo : TJSObject; &object : string);
+  TSystemPreferences_subscribeNotification_callback = Procedure (event : string; userInfo : TJSObject; &object : string);
+  TSystemPreferences_subscribeWorkspaceNotification_callback = Procedure (event : string; userInfo : TJSObject; &object : string);
+  TSystemPreferences = class external name 'Object' (TJSObject)
+    FeffectiveAppearance : jsvalue; external name 'effectiveAppearance';
+    Function &on(event : String; listener : TSystemPreferences_on_listener): TSystemPreferences; overload;
+    Function addListener(event : String; listener : TSystemPreferences_addListener_listener): TSystemPreferences; overload;
+    Function askForMediaAccess(mediaType : jsvalue): TJSPromise;
+    Function canPromptTouchID: boolean;
+    Function getAccentColor: string;
+    Function getAnimationSettings: TAnimationSettings;
+    Function getAppLevelAppearance: jsvalue;
+    Function getColor(color : jsvalue): string;
+    Function getEffectiveAppearance: jsvalue;
+    Function getMediaAccessStatus(mediaType : jsvalue): jsvalue;
+    Function getSystemColor(color : jsvalue): string;
+    Function getUserDefault(key : string; atype : String): TSystemPreferences_getUserDefault_Result;
+    Function isAeroGlassEnabled: boolean;
+    Function isDarkMode: boolean;
+    Function isHighContrastColorScheme: boolean;
+    Function isInvertedColorScheme: boolean;
+    Function isSwipeTrackingFromScrollEventsEnabled: boolean;
+    Function isTrustedAccessibilityClient(prompt : boolean): boolean;
+    Function once(event : String; listener : TSystemPreferences_once_listener): TSystemPreferences; overload;
+    Procedure postLocalNotification(event : string; userInfo : TJSObject);
+    Procedure postNotification(event : string; userInfo : TJSObject; deliverImmediately : boolean); overload;
+    Procedure postNotification(event : string; userInfo : TJSObject); overload;
+    Procedure postWorkspaceNotification(event : string; userInfo : TJSObject);
+    Function promptTouchID(reason : string): TJSPromise;
+    Procedure registerDefaults(defaults : TJSObject);
+    Function removeListener(event : String; listener : TSystemPreferences_removeListener_listener): TSystemPreferences; overload;
+    Procedure removeUserDefault(key : string);
+    Procedure setAppLevelAppearance(appearance : jsvalue);
+    Procedure setUserDefault(key : string; &type : jsvalue; value : string);
+    Function subscribeLocalNotification(event : string; callback : TSystemPreferences_subscribeLocalNotification_callback): Double;
+    Function subscribeNotification(event : string; callback : TSystemPreferences_subscribeNotification_callback): Double;
+    Function subscribeWorkspaceNotification(event : string; callback : TSystemPreferences_subscribeWorkspaceNotification_callback): Double;
+    Procedure unsubscribeLocalNotification(id : Double);
+    Procedure unsubscribeNotification(id : Double);
+    Procedure unsubscribeWorkspaceNotification(id : Double);
+    appLevelAppearance : jsvalue;
+    Property effectiveAppearance : jsvalue Read FeffectiveAppearance;
+  end;
+
+  TTask = class external name 'Object' (TJSObject)
+    arguments : string;
+    description : string;
+    iconIndex : Double;
+    iconPath : string;
+    &program : string;external name 'program';
+    title : string;
+    workingDirectory : string;
+  end;
+
+  TThumbarButton_flags = array of string;
+  TThumbarButton = class external name 'Object' (TJSObject)
+    click : TJSFunction;
+    flags : TThumbarButton_flags;
+    icon : TNativeImage;
+    tooltip : string;
+  end;
+
+  TTraceCategoriesAndOptions = class external name 'Object' (TJSObject)
+    categoryFilter : string;
+    traceOptions : string;
+  end;
+
+  TTraceConfig_excluded_categories = array of string;
+  TTraceConfig_histogram_names = array of string;
+  TTraceConfig_included_categories = array of string;
+  TTraceConfig_included_process_ids = array of Double;
+  TTraceConfig = class external name 'Object' (TJSObject)
+    enable_argument_filter : boolean;
+    excluded_categories : TTraceConfig_excluded_categories;
+    histogram_names : TTraceConfig_histogram_names;
+    included_categories : TTraceConfig_included_categories;
+    included_process_ids : TTraceConfig_included_process_ids;
+    memory_dump_config : TJSObject;
+    recording_mode : jsvalue;
+    trace_buffer_size_in_events : Double;
+    trace_buffer_size_in_kb : Double;
+  end;
+
+  TTransaction = class external name 'Object' (TJSObject)
+    errorCode : Double;
+    errorMessage : string;
+    originalTransactionIdentifier : string;
+    payment : TPayment;
+    transactionDate : string;
+    transactionIdentifier : string;
+    transactionState : jsvalue;
+  end;
+
+  TUploadData = class external name 'Object' (TJSObject)
+    blobUUID : string;
+    bytes : TNJSBuffer;
+    &file : string;external name 'file';
+  end;
+
+  TUploadFile = class external name 'Object' (TJSObject)
+    filePath : string;
+    &length : Double;external name 'length';
+    modificationTime : Double;
+    offset : Double;
+    &type : String;external name 'type';
+  end;
+
+  TUploadRawData = class external name 'Object' (TJSObject)
+    bytes : TNJSBuffer;
+    &type : String;external name 'type';
+  end;
+
+  TUserDefaultTypes_array = array of JSValue;
+  TUserDefaultTypes = class external name 'Object' (TJSObject)
+    array_ : TUserDefaultTypes_array;external name 'array';
+    boolean_ : boolean;external name 'boolean';
+    dictionary : TJSObject;
+    double_ : Double;external name 'double';
+    float : Double;
+    integer : Double;
+    string_ : string;external name 'string';
+    url : string;
+  end;
+
+  TWebFrame_executeJavaScript_callback = Procedure (result : JSValue; error : TJSError);
+  TWebFrame_executeJavaScriptInIsolatedWorld_callback = Procedure (result : JSValue; error : TJSError);
+  TWebFrame_getWordSuggestions_Result = array of string;
+  TWebFrame = class external name 'Object' (TJSObject)
+    FfirstChild : jsvalue; external name 'firstChild';
+    FnextSibling : jsvalue; external name 'nextSibling';
+    Fopener : jsvalue; external name 'opener';
+    Fparent : jsvalue; external name 'parent';
+    FroutingId : Double; external name 'routingId';
+    Ftop : jsvalue; external name 'top';
+    Procedure clearCache;
+    Function executeJavaScript(code : string; userGesture : boolean; callback : TWebFrame_executeJavaScript_callback): TJSPromise; overload;
+    Function executeJavaScript(code : string): TJSPromise; overload;
+    Function executeJavaScript(code : string; userGesture : boolean): TJSPromise; overload;
+    Function executeJavaScriptInIsolatedWorld(worldId : Double; scripts : array of TWebSource; userGesture : boolean; callback : TWebFrame_executeJavaScriptInIsolatedWorld_callback): TJSPromise; overload;
+    Function executeJavaScriptInIsolatedWorld(worldId : Double; scripts : array of TWebSource): TJSPromise; overload;
+    Function executeJavaScriptInIsolatedWorld(worldId : Double; scripts : array of TWebSource; userGesture : boolean): TJSPromise; overload;
+    Function findFrameByName(name : string): TWebFrame;
+    Function findFrameByRoutingId(routingId : Double): TWebFrame;
+    Function getFrameForSelector(selector : string): TWebFrame;
+    Function getResourceUsage: TResourceUsage;
+    Function getWordSuggestions(word : string): TWebFrame_getWordSuggestions_Result;
+    Function getZoomFactor: Double;
+    Function getZoomLevel: Double;
+    Function insertCSS(css : string; options : TInsertCSSOptions): string; overload;
+    Function insertCSS(css : string): string; overload;
+    Procedure insertText(text : string);
+    Function isWordMisspelled(word : string): boolean;
+    Procedure removeInsertedCSS(key : string);
+    Procedure setIsolatedWorldInfo(worldId : Double; info : TInfo);
+    Procedure setSpellCheckProvider(language : string; provider : TProvider);
+    Procedure setVisualZoomLevelLimits(minimumLevel : Double; maximumLevel : Double);
+    Procedure setZoomFactor(factor : Double);
+    Procedure setZoomLevel(level : Double);
+    Property firstChild : jsvalue Read FfirstChild;
+    Property nextSibling : jsvalue Read FnextSibling;
+    Property opener : jsvalue Read Fopener;
+    Property parent : jsvalue Read Fparent;
+    Property routingId : Double Read FroutingId;
+    Property top : jsvalue Read Ftop;
+  end;
+
+  TWebRequestFilter_urls = array of string;
+  TWebRequestFilter = class external name 'Object' (TJSObject)
+    urls : TWebRequestFilter_urls;
+  end;
+
+  TWebSource = class external name 'Object' (TJSObject)
+    code : string;
+    url : string;
+  end;
+
+  TWebviewTag_addEventListener_listener = Procedure (event : TLoadCommitEvent);
+  TWebviewTag_removeEventListener_listener = Procedure (event : TLoadCommitEvent);
+  TWebviewTag_sendToFrame_frameId = Array[0..1] of Double;
+  TWebviewTag = class external name 'Object' (TJSObject)
+    Function addEventListener(event : String; listener : TWebviewTag_addEventListener_listener; useCapture : boolean): TWebViewTag; overload;
+    Function addEventListener(event : String; listener : TWebviewTag_addEventListener_listener): TWebViewTag; overload;
+    Function addEventListener(type_ : JSValue; listener : TWebviewTag_addEventListener_listener; useCapture : boolean): TWebViewTag; overload;
+    Function addEventListener(type_ : JSValue; listener : TWebviewTag_addEventListener_listener): TWebViewTag; overload;
+    Function addEventListener(type_ : string; listener : TJSObject; useCapture : boolean): TWebViewTag; overload;
+    Function addEventListener(type_ : string; listener : TJSObject): TWebViewTag; overload;
+    Function canGoBack: boolean;
+    Function canGoForward: boolean;
+    Function canGoToOffset(offset : Double): boolean;
+    Function capturePage(rect : TRectangle): TJSPromise; overload;
+    Function capturePage: TJSPromise; overload;
+    Procedure clearHistory;
+    Procedure closeDevTools;
+    Procedure copy;
+    Procedure cut;
+    Procedure delete;
+    Procedure downloadURL(url : string);
+    Function executeJavaScript(code : string; userGesture : boolean): TJSPromise; overload;
+    Function executeJavaScript(code : string): TJSPromise; overload;
+    Function findInPage(text : string; options : TFindInPageOptions): Double; overload;
+    Function findInPage(text : string): Double; overload;
+    Function getTitle: string;
+    Function getURL: string;
+    Function getUserAgent: string;
+    Function getWebContentsId: Double;
+    Function getZoomFactor: Double;
+    Function getZoomLevel: Double;
+    Procedure goBack;
+    Procedure goForward;
+    Procedure goToIndex(index : Double);
+    Procedure goToOffset(offset : Double);
+    Function insertCSS(css : string): TJSPromise;
+    Function insertText(text : string): TJSPromise;
+    Procedure inspectElement(x : Double; y : Double);
+    Procedure inspectServiceWorker;
+    Procedure inspectSharedWorker;
+    Function isAudioMuted: boolean;
+    Function isCrashed: boolean;
+    Function isCurrentlyAudible: boolean;
+    Function isDevToolsFocused: boolean;
+    Function isDevToolsOpened: boolean;
+    Function isLoading: boolean;
+    Function isLoadingMainFrame: boolean;
+    Function isWaitingForResponse: boolean;
+    Function loadURL(url : string; options : TLoadURLOptions): TJSPromise; overload;
+    Function loadURL(url : string): TJSPromise; overload;
+    Procedure openDevTools;
+    Procedure paste;
+    Procedure pasteAndMatchStyle;
+    Function print(options : TWebviewTagPrintOptions): TJSPromise; overload;
+    Function print: TJSPromise; overload;
+    Function printToPDF(options : TPrintToPDFOptions): TJSPromise;
+    Procedure redo;
+    Procedure reload;
+    Procedure reloadIgnoringCache;
+    Function removeEventListener(event : String; listener : TWebviewTag_removeEventListener_listener): TWebViewTag; overload;
+    Function removeEventListener(type_ : JSValue; listener : TWebviewTag_removeEventListener_listener; useCapture : boolean): TWebViewTag; overload;
+    Function removeEventListener(type_ : JSValue; listener : TWebviewTag_removeEventListener_listener): TWebViewTag; overload;
+    Function removeEventListener(type_ : string; listener : TJSObject; useCapture : boolean): TWebViewTag; overload;
+    Function removeEventListener(type_ : string; listener : TJSObject): TWebViewTag; overload;
+    Function removeInsertedCSS(key : string): TJSPromise;
+    Procedure replace(text : string);
+    Procedure replaceMisspelling(text : string);
+    Procedure selectAll;
+    Function send(channel : string; args : array of JSValue): TJSPromise;
+    Function sendInputEvent(event : jsvalue): TJSPromise;
+    Function sendToFrame(frameId : TWebviewTag_sendToFrame_frameId; channel : string; args : array of JSValue): TJSPromise;
+    Procedure setAudioMuted(muted : boolean);
+    Procedure setUserAgent(userAgent : string);
+    Function setVisualZoomLevelLimits(minimumLevel : Double; maximumLevel : Double): TJSPromise;
+    Procedure setZoomFactor(factor : Double);
+    Procedure setZoomLevel(level : Double);
+    Procedure showDefinitionForSelection;
+    Procedure stop;
+    Procedure stopFindInPage(action : jsvalue);
+    Procedure undo;
+    Procedure unselect;
+    allowpopups : boolean;
+    disableblinkfeatures : string;
+    disablewebsecurity : boolean;
+    enableblinkfeatures : string;
+    httpreferrer : string;
+    nodeintegration : boolean;
+    nodeintegrationinsubframes : boolean;
+    partition : string;
+    plugins : boolean;
+    preload : string;
+    src : string;
+    useragent : string;
+    webpreferences : string;
+  end;
+
+  TAboutPanelOptionsOptions_authors = array of string;
+  TAboutPanelOptionsOptions = class external name 'Object' (TJSObject)
+    applicationName : string;
+    applicationVersion : string;
+    copyright : string;
+    version : string;
+    credits : string;
+    authors : TAboutPanelOptionsOptions_authors;
+    website : string;
+    iconPath : string;
+  end;
+
+  TAddRepresentationOptions = class external name 'Object' (TJSObject)
+    scaleFactor : Double;
+    width : Double;
+    height : Double;
+    buffer_ : TNJSBuffer;external name 'buffer';
+    dataURL : string;
+  end;
+
+  TAnimationSettings = class external name 'Object' (TJSObject)
+    shouldRenderRichAnimation : boolean;
+    scrollAnimationsEnabledBySystem : boolean;
+    prefersReducedMotion : boolean;
+  end;
+
+  TAppDetailsOptions = class external name 'Object' (TJSObject)
+    appId : string;
+    appIconPath : string;
+    appIconIndex : Double;
+    relaunchCommand : string;
+    relaunchDisplayName : string;
+  end;
+
+  TApplicationInfoForProtocolReturnValue = class external name 'Object' (TJSObject)
+    icon : TNativeImage;
+    path : string;
+    name : string;
+  end;
+
+  TAuthenticationResponseDetails = class external name 'Object' (TJSObject)
+    url : string;
+  end;
+
+  TAuthInfo = class external name 'Object' (TJSObject)
+    isProxy : boolean;
+    scheme : string;
+    host : string;
+    port : Double;
+    realm : string;
+  end;
+
+  TAutoResizeOptions = class external name 'Object' (TJSObject)
+    width : boolean;
+    height : boolean;
+    horizontal : boolean;
+    vertical : boolean;
+  end;
+
+  TBeforeSendResponse = class external name 'Object' (TJSObject)
+    cancel : boolean;
+    requestHeaders : TJSObject;
+  end;
+
+  TBitmapOptions = class external name 'Object' (TJSObject)
+    scaleFactor : Double;
+  end;
+
+  TBlinkMemoryInfo = class external name 'Object' (TJSObject)
+    allocated : Double;
+    total : Double;
+  end;
+
+  TBrowserViewConstructorOptions = class external name 'Object' (TJSObject)
+    webPreferences : TWebPreferences;
+  end;
+
+  TBrowserWindowConstructorOptions = class external name 'Object' (TJSObject)
+    width : Double;
+    height : Double;
+    x : Double;
+    y : Double;
+    useContentSize : boolean;
+    center : boolean;
+    minWidth : Double;
+    minHeight : Double;
+    maxWidth : Double;
+    maxHeight : Double;
+    resizable : boolean;
+    movable : boolean;
+    minimizable : boolean;
+    maximizable : boolean;
+    closable : boolean;
+    focusable : boolean;
+    alwaysOnTop : boolean;
+    fullscreen : boolean;
+    fullscreenable : boolean;
+    simpleFullscreen : boolean;
+    skipTaskbar : boolean;
+    kiosk : boolean;
+    title : string;
+    icon : jsvalue;
+    show : boolean;
+    paintWhenInitiallyHidden : boolean;
+    frame : boolean;
+    parent : TBrowserWindow;
+    modal : boolean;
+    acceptFirstMouse : boolean;
+    disableAutoHideCursor : boolean;
+    autoHideMenuBar : boolean;
+    enableLargerThanScreen : boolean;
+    backgroundColor : string;
+    hasShadow : boolean;
+    opacity : Double;
+    darkTheme : boolean;
+    transparent : boolean;
+    &type : string;external name 'type';
+    visualEffectState : jsvalue;
+    titleBarStyle : jsvalue;
+    trafficLightPosition : TPoint;
+    roundedCorners : boolean;
+    fullscreenWindowTitle : boolean;
+    thickFrame : boolean;
+    vibrancy : jsvalue;
+    zoomToPageWidth : boolean;
+    tabbingIdentifier : string;
+    webPreferences : TWebPreferences;
+    titleBarOverlay : jsvalue;
+  end;
+
+  TCertificateTrustDialogOptions = class external name 'Object' (TJSObject)
+    certificate : TCertificate;
+    message : string;
+  end;
+
+  TClearCodeCachesOptions_urls = array of string;
+  TClearCodeCachesOptions = class external name 'Object' (TJSObject)
+    urls : TClearCodeCachesOptions_urls;
+  end;
+
+  TClearStorageDataOptions_storages = array of string;
+  TClearStorageDataOptions_quotas = array of string;
+  TClearStorageDataOptions = class external name 'Object' (TJSObject)
+    origin : string;
+    storages : TClearStorageDataOptions_storages;
+    quotas : TClearStorageDataOptions_quotas;
+  end;
+
+  TClientRequestConstructorOptions = class external name 'Object' (TJSObject)
+    method : string;
+    url : string;
+    session : TSession;
+    partition : string;
+    credentials : jsvalue;
+    useSessionCookies : boolean;
+    protocol : string;
+    host : string;
+    hostname : string;
+    port : Double;
+    path : string;
+    redirect : jsvalue;
+    origin : string;
+  end;
+
+  TConfig = class external name 'Object' (TJSObject)
+    mode : jsvalue;
+    pacScript : string;
+    proxyRules : string;
+    proxyBypassRules : string;
+  end;
+
+  TConfigureHostResolverOptions_secureDnsServers = array of string;
+  TConfigureHostResolverOptions = class external name 'Object' (TJSObject)
+    enableBuiltInResolver : boolean;
+    secureDnsMode : string;
+    secureDnsServers : TConfigureHostResolverOptions_secureDnsServers;
+    enableAdditionalDnsQueryTypes : boolean;
+  end;
+
+  TConsoleMessageEvent = class external name 'Object' (TJSObject)
+    level : Double;
+    message : string;
+    line : Double;
+    sourceId : string;
+  end;
+
+  TContextMenuEvent = class external name 'Object' (TJSObject)
+    params : TParams;
+  end;
+
+  TContextMenuParams_dictionarySuggestions = array of string;
+  TContextMenuParams = class external name 'Object' (TJSObject)
+    x : Double;
+    y : Double;
+    frame : TWebFrameMain;
+    linkURL : string;
+    linkText : string;
+    pageURL : string;
+    frameURL : string;
+    srcURL : string;
+    mediaType : jsvalue;
+    hasImageContents : boolean;
+    isEditable : boolean;
+    selectionText : string;
+    titleText : string;
+    altText : string;
+    suggestedFilename : string;
+    selectionRect : TRectangle;
+    selectionStartOffset : Double;
+    referrerPolicy : TReferrer;
+    misspelledWord : string;
+    dictionarySuggestions : TContextMenuParams_dictionarySuggestions;
+    frameCharset : string;
+    inputFieldType : string;
+    spellcheckEnabled : boolean;
+    menuSourceType : jsvalue;
+    mediaFlags : TMediaFlags;
+    editFlags : TEditFlags;
+  end;
+
+  TContinueActivityDetails = class external name 'Object' (TJSObject)
+    webpageURL : string;
+  end;
+
+  TCookiesGetFilter = class external name 'Object' (TJSObject)
+    url : string;
+    name : string;
+    domain : string;
+    path : string;
+    secure : boolean;
+    session : boolean;
+  end;
+
+  TCookiesSetDetails = class external name 'Object' (TJSObject)
+    url : string;
+    name : string;
+    value : string;
+    domain : string;
+    path : string;
+    secure : boolean;
+    httpOnly : boolean;
+    expirationDate : Double;
+    sameSite : jsvalue;
+  end;
+
+  TCrashReporterStartOptions = class external name 'Object' (TJSObject)
+    submitURL : string;
+    productName : string;
+    companyName : string;
+    uploadToServer : boolean;
+    ignoreSystemCrashHandler : boolean;
+    rateLimit : boolean;
+    compress : boolean;
+    extra : TJSObject;
+    globalExtra : TJSObject;
+  end;
+
+  TCreateFromBitmapOptions = class external name 'Object' (TJSObject)
+    width : Double;
+    height : Double;
+    scaleFactor : Double;
+  end;
+
+  TCreateFromBufferOptions = class external name 'Object' (TJSObject)
+    width : Double;
+    height : Double;
+    scaleFactor : Double;
+  end;
+
+  TCreateInterruptedDownloadOptions_urlChain = array of string;
+  TCreateInterruptedDownloadOptions = class external name 'Object' (TJSObject)
+    path : string;
+    urlChain : TCreateInterruptedDownloadOptions_urlChain;
+    mimeType : string;
+    offset : Double;
+    &length : Double;external name 'length';
+    lastModified : string;
+    eTag : string;
+    startTime : Double;
+  end;
+
+  TData = class external name 'Object' (TJSObject)
+    text : string;
+    html : string;
+    image : TNativeImage;
+    rtf : string;
+    bookmark : string;
+  end;
+
+  TDetails = class external name 'Object' (TJSObject)
+    &type : jsvalue;external name 'type';
+    reason : jsvalue;
+    exitCode : Double;
+    serviceName : string;
+    name : string;
+  end;
+
+  TDevicePermissionHandlerHandlerDetails = class external name 'Object' (TJSObject)
+    deviceType : jsvalue;
+    origin : string;
+    device : jsvalue;
+    frame : TWebFrameMain;
+  end;
+
+  TDidChangeThemeColorEvent = class external name 'Object' (TJSObject)
+    themeColor : string;
+  end;
+
+  TDidCreateWindowDetails = class external name 'Object' (TJSObject)
+    url : string;
+    frameName : string;
+    options : TBrowserWindowConstructorOptions;
+    referrer : TReferrer;
+    postBody : TPostBody;
+    disposition : jsvalue;
+  end;
+
+  TDidFailLoadEvent = class external name 'Object' (TJSObject)
+    errorCode : Double;
+    errorDescription : string;
+    validatedURL : string;
+    isMainFrame : boolean;
+  end;
+
+  TDidFrameFinishLoadEvent = class external name 'Object' (TJSObject)
+    isMainFrame : boolean;
+  end;
+
+  TDidFrameNavigateEvent = class external name 'Object' (TJSObject)
+    url : string;
+    httpResponseCode : Double;
+    httpStatusText : string;
+    isMainFrame : boolean;
+    frameProcessId : Double;
+    frameRoutingId : Double;
+  end;
+
+  TDidNavigateEvent = class external name 'Object' (TJSObject)
+    url : string;
+  end;
+
+  TDidNavigateInPageEvent = class external name 'Object' (TJSObject)
+    isMainFrame : boolean;
+    url : string;
+  end;
+
+  TDidRedirectNavigationEvent = class external name 'Object' (TJSObject)
+    url : string;
+    isInPlace : boolean;
+    isMainFrame : boolean;
+    frameProcessId : Double;
+    frameRoutingId : Double;
+  end;
+
+  TDidStartNavigationEvent = class external name 'Object' (TJSObject)
+    url : string;
+    isInPlace : boolean;
+    isMainFrame : boolean;
+    frameProcessId : Double;
+    frameRoutingId : Double;
+  end;
+
+  TDisplayBalloonOptions = class external name 'Object' (TJSObject)
+    icon : jsvalue;
+    iconType : jsvalue;
+    title : string;
+    content : string;
+    largeIcon : boolean;
+    noSound : boolean;
+    respectQuietTime : boolean;
+  end;
+
+  TEnableNetworkEmulationOptions = class external name 'Object' (TJSObject)
+    offline : boolean;
+    latency : Double;
+    downloadThroughput : Double;
+    uploadThroughput : Double;
+  end;
+
+  TFeedURLOptions = class external name 'Object' (TJSObject)
+    url : string;
+    headers : TJSObject;
+    serverType : jsvalue;
+  end;
+
+  TFileIconOptions = class external name 'Object' (TJSObject)
+    size : jsvalue;
+  end;
+
+  TFindInPageOptions = class external name 'Object' (TJSObject)
+    forward : boolean;
+    findNext : boolean;
+    matchCase : boolean;
+  end;
+
+  TFocusOptions = class external name 'Object' (TJSObject)
+    steal : boolean;
+  end;
+
+  TFoundInPageEvent = class external name 'Object' (TJSObject)
+    result : TFoundInPageResult;
+  end;
+
+  TFrameCreatedDetails = class external name 'Object' (TJSObject)
+    frame : TWebFrameMain;
+  end;
+
+  TFromPartitionOptions = class external name 'Object' (TJSObject)
+    cache : boolean;
+  end;
+
+  THandlerDetails = class external name 'Object' (TJSObject)
+    url : string;
+    frameName : string;
+    features : string;
+    disposition : jsvalue;
+    referrer : TReferrer;
+    postBody : TPostBody;
+  end;
+
+  THeadersReceivedResponse = class external name 'Object' (TJSObject)
+    cancel : boolean;
+    responseHeaders : TJSObject;
+    statusLine : string;
+  end;
+
+  THeapStatistics = class external name 'Object' (TJSObject)
+    totalHeapSize : Double;
+    totalHeapSizeExecutable : Double;
+    totalPhysicalSize : Double;
+    totalAvailableSize : Double;
+    usedHeapSize : Double;
+    heapSizeLimit : Double;
+    mallocedMemory : Double;
+    peakMallocedMemory : Double;
+    doesZapGarbage : boolean;
+  end;
+
+  THidDeviceAddedDetails_device = array of THIDDevice;
+  THidDeviceAddedDetails = class external name 'Object' (TJSObject)
+    device : THidDeviceAddedDetails_device;
+    frame : TWebFrameMain;
+  end;
+
+  THidDeviceRemovedDetails_device = array of THIDDevice;
+  THidDeviceRemovedDetails = class external name 'Object' (TJSObject)
+    device : THidDeviceRemovedDetails_device;
+    frame : TWebFrameMain;
+  end;
+
+  TIgnoreMouseEventsOptions = class external name 'Object' (TJSObject)
+    forward : boolean;
+  end;
+
+  TImportCertificateOptions = class external name 'Object' (TJSObject)
+    certificate : string;
+    password : string;
+  end;
+
+  TInfo = class external name 'Object' (TJSObject)
+    securityOrigin : string;
+    csp : string;
+    name : string;
+  end;
+
+  TInput_modifiers = array of string;
+  TInput = class external name 'Object' (TJSObject)
+    &type : string;external name 'type';
+    key : string;
+    code : string;
+    isAutoRepeat : boolean;
+    isComposing : boolean;
+    shift : boolean;
+    control : boolean;
+    alt : boolean;
+    meta : boolean;
+    location : Double;
+    modifiers : TInput_modifiers;
+  end;
+
+  TInsertCSSOptions = class external name 'Object' (TJSObject)
+    cssOrigin : string;
+  end;
+
+  TIpcMessageEvent_frameId = Array[0..1] of Double;
+  TIpcMessageEvent_args = array of JSValue;
+  TIpcMessageEvent = class external name 'Object' (TJSObject)
+    frameId : TIpcMessageEvent_frameId;
+    channel : string;
+    args : TIpcMessageEvent_args;
+  end;
+
+  TItem_files = array of string;
+  TItem = class external name 'Object' (TJSObject)
+    &file : string;external name 'file';
+    files : TItem_files;
+    icon : jsvalue;
+  end;
+
+  TJumpListSettings_removedItems = array of TJumpListItem;
+  TJumpListSettings = class external name 'Object' (TJSObject)
+    minItems : Double;
+    removedItems : TJumpListSettings_removedItems;
+  end;
+
+  TLoadCommitEvent = class external name 'Object' (TJSObject)
+    url : string;
+    isMainFrame : boolean;
+  end;
+
+  TLoadExtensionOptions = class external name 'Object' (TJSObject)
+    allowFileAccess : boolean;
+  end;
+
+  TLoadFileOptions = class external name 'Object' (TJSObject)
+    query : TJSObject;
+    search : string;
+    hash : string;
+  end;
+
+  TLoadURLOptions_postData = array of TJSObject;
+  TLoadURLOptions = class external name 'Object' (TJSObject)
+    httpReferrer : jsvalue;
+    userAgent : string;
+    extraHeaders : string;
+    postData : TLoadURLOptions_postData;
+    baseURLForDataURL : string;
+  end;
+
+  TLoginItemSettings_launchItems = array of TLaunchItems;
+  TLoginItemSettings = class external name 'Object' (TJSObject)
+    openAtLogin : boolean;
+    openAsHidden : boolean;
+    wasOpenedAtLogin : boolean;
+    wasOpenedAsHidden : boolean;
+    restoreState : boolean;
+    executableWillLaunchAtLogin : boolean;
+    launchItems : TLoginItemSettings_launchItems;
+  end;
+
+  TLoginItemSettingsOptions_args = array of string;
+  TLoginItemSettingsOptions = class external name 'Object' (TJSObject)
+    path : string;
+    args : TLoginItemSettingsOptions_args;
+  end;
+
+  TMenuItemConstructorOptions_click = Procedure (menuItem : TMenuItem; browserWindow : jsvalue; event : TKeyboardEvent);
+  TMenuItemConstructorOptions_before = array of string;
+  TMenuItemConstructorOptions_after = array of string;
+  TMenuItemConstructorOptions_beforeGroupContaining = array of string;
+  TMenuItemConstructorOptions_afterGroupContaining = array of string;
+  TMenuItemConstructorOptions = class external name 'Object' (TJSObject)
+    click : TMenuItemConstructorOptions_click;
+    role : jsvalue;
+    &type : jsvalue;external name 'type';
+    &label : string;external name 'label';
+    sublabel : string;
+    toolTip : string;
+    accelerator : TAccelerator;
+    icon : jsvalue;
+    enabled : boolean;
+    acceleratorWorksWhenHidden : boolean;
+    visible : boolean;
+    checked : boolean;
+    registerAccelerator : boolean;
+    sharingItem : TSharingItem;
+    submenu : jsvalue;
+    id : string;
+    before : TMenuItemConstructorOptions_before;
+    after : TMenuItemConstructorOptions_after;
+    beforeGroupContaining : TMenuItemConstructorOptions_beforeGroupContaining;
+    afterGroupContaining : TMenuItemConstructorOptions_afterGroupContaining;
+  end;
+
+  TMessageBoxOptions_buttons = array of string;
+  TMessageBoxOptions = class external name 'Object' (TJSObject)
+    message : string;
+    &type : string;external name 'type';
+    buttons : TMessageBoxOptions_buttons;
+    defaultId : Double;
+    signal : JSValue;
+    title : string;
+    detail : string;
+    checkboxLabel : string;
+    checkboxChecked : boolean;
+    icon : jsvalue;
+    textWidth : Double;
+    cancelId : Double;
+    noLink : boolean;
+    normalizeAccessKeys : boolean;
+  end;
+
+  TMessageBoxReturnValue = class external name 'Object' (TJSObject)
+    response : Double;
+    checkboxChecked : boolean;
+  end;
+
+  TMessageBoxSyncOptions_buttons = array of string;
+  TMessageBoxSyncOptions = class external name 'Object' (TJSObject)
+    message : string;
+    &type : string;external name 'type';
+    buttons : TMessageBoxSyncOptions_buttons;
+    defaultId : Double;
+    title : string;
+    detail : string;
+    icon : jsvalue;
+    textWidth : Double;
+    cancelId : Double;
+    noLink : boolean;
+    normalizeAccessKeys : boolean;
+  end;
+
+  TMessageDetails = class external name 'Object' (TJSObject)
+    message : string;
+    versionId : Double;
+    source : jsvalue;
+    level : Double;
+    sourceUrl : string;
+    lineNumber : Double;
+  end;
+
+  TMessageEvent_ports = array of TMessagePortMain;
+  TMessageEvent = class external name 'Object' (TJSObject)
+    data : JSValue;
+    ports : TMessageEvent_ports;
+  end;
+
+  TMoveToApplicationsFolderOptions_conflictHandler = Function (conflictType : jsvalue): boolean;
+  TMoveToApplicationsFolderOptions = class external name 'Object' (TJSObject)
+    conflictHandler : TMoveToApplicationsFolderOptions_conflictHandler;
+  end;
+
+  TNewWindowEvent = class external name 'Object' (TJSObject)
+    url : string;
+    frameName : string;
+    disposition : jsvalue;
+    options : TBrowserWindowConstructorOptions;
+  end;
+
+  TNotificationConstructorOptions_actions = array of TNotificationAction;
+  TNotificationConstructorOptions = class external name 'Object' (TJSObject)
+    title : string;
+    subtitle : string;
+    body : string;
+    silent : boolean;
+    icon : jsvalue;
+    hasReply : boolean;
+    timeoutType : jsvalue;
+    replyPlaceholder : string;
+    sound : string;
+    urgency : jsvalue;
+    actions : TNotificationConstructorOptions_actions;
+    closeButtonText : string;
+    toastXml : string;
+  end;
+
+  TOnBeforeRedirectListenerDetails = class external name 'Object' (TJSObject)
+    id : Double;
+    url : string;
+    method : string;
+    webContentsId : Double;
+    webContents : TWebContents;
+    frame : TWebFrameMain;
+    resourceType : jsvalue;
+    referrer : string;
+    timestamp : Double;
+    redirectURL : string;
+    statusCode : Double;
+    statusLine : string;
+    ip : string;
+    fromCache : boolean;
+    responseHeaders : TJSObject;
+  end;
+
+  TOnBeforeRequestListenerDetails_uploadData = array of TUploadData;
+  TOnBeforeRequestListenerDetails = class external name 'Object' (TJSObject)
+    id : Double;
+    url : string;
+    method : string;
+    webContentsId : Double;
+    webContents : TWebContents;
+    frame : TWebFrameMain;
+    resourceType : jsvalue;
+    referrer : string;
+    timestamp : Double;
+    uploadData : TOnBeforeRequestListenerDetails_uploadData;
+  end;
+
+  TOnBeforeSendHeadersListenerDetails = class external name 'Object' (TJSObject)
+    id : Double;
+    url : string;
+    method : string;
+    webContentsId : Double;
+    webContents : TWebContents;
+    frame : TWebFrameMain;
+    resourceType : jsvalue;
+    referrer : string;
+    timestamp : Double;
+    requestHeaders : TJSObject;
+  end;
+
+  TOnCompletedListenerDetails = class external name 'Object' (TJSObject)
+    id : Double;
+    url : string;
+    method : string;
+    webContentsId : Double;
+    webContents : TWebContents;
+    frame : TWebFrameMain;
+    resourceType : jsvalue;
+    referrer : string;
+    timestamp : Double;
+    responseHeaders : TJSObject;
+    fromCache : boolean;
+    statusCode : Double;
+    statusLine : string;
+    error : string;
+  end;
+
+  TOnErrorOccurredListenerDetails = class external name 'Object' (TJSObject)
+    id : Double;
+    url : string;
+    method : string;
+    webContentsId : Double;
+    webContents : TWebContents;
+    frame : TWebFrameMain;
+    resourceType : jsvalue;
+    referrer : string;
+    timestamp : Double;
+    fromCache : boolean;
+    error : string;
+  end;
+
+  TOnHeadersReceivedListenerDetails = class external name 'Object' (TJSObject)
+    id : Double;
+    url : string;
+    method : string;
+    webContentsId : Double;
+    webContents : TWebContents;
+    frame : TWebFrameMain;
+    resourceType : jsvalue;
+    referrer : string;
+    timestamp : Double;
+    statusLine : string;
+    statusCode : Double;
+    responseHeaders : TJSObject;
+  end;
+
+  TOnResponseStartedListenerDetails = class external name 'Object' (TJSObject)
+    id : Double;
+    url : string;
+    method : string;
+    webContentsId : Double;
+    webContents : TWebContents;
+    frame : TWebFrameMain;
+    resourceType : jsvalue;
+    referrer : string;
+    timestamp : Double;
+    responseHeaders : TJSObject;
+    fromCache : boolean;
+    statusCode : Double;
+    statusLine : string;
+  end;
+
+  TOnSendHeadersListenerDetails = class external name 'Object' (TJSObject)
+    id : Double;
+    url : string;
+    method : string;
+    webContentsId : Double;
+    webContents : TWebContents;
+    frame : TWebFrameMain;
+    resourceType : jsvalue;
+    referrer : string;
+    timestamp : Double;
+    requestHeaders : TJSObject;
+  end;
+
+  TOpenDevToolsOptions = class external name 'Object' (TJSObject)
+    mode : jsvalue;
+    activate : boolean;
+  end;
+
+  TOpenDialogOptions_filters = array of TFileFilter;
+  TOpenDialogOptions_properties = array of String;
+  TOpenDialogOptions = class external name 'Object' (TJSObject)
+    title : string;
+    defaultPath : string;
+    buttonLabel : string;
+    filters : TOpenDialogOptions_filters;
+    properties_ : TOpenDialogOptions_properties; external name 'properties';
+    message : string;
+    securityScopedBookmarks : boolean;
+  end;
+
+  TOpenDialogReturnValue_filePaths = array of string;
+  TOpenDialogReturnValue_bookmarks = array of string;
+  TOpenDialogReturnValue = class external name 'Object' (TJSObject)
+    canceled : boolean;
+    filePaths : TOpenDialogReturnValue_filePaths;
+    bookmarks : TOpenDialogReturnValue_bookmarks;
+  end;
+
+  TOpenDialogSyncOptions_filters = array of TFileFilter;
+  TOpenDialogSyncOptions_properties = array of string;
+  TOpenDialogSyncOptions = class external name 'Object' (TJSObject)
+    title : string;
+    defaultPath : string;
+    buttonLabel : string;
+    filters : TOpenDialogSyncOptions_filters;
+    properties_ : TOpenDialogSyncOptions_properties; external name 'properties';
+    message : string;
+    securityScopedBookmarks : boolean;
+  end;
+
+  TOpenExternalOptions = class external name 'Object' (TJSObject)
+    activate : boolean;
+    workingDirectory : string;
+  end;
+
+  TOptions = class external name 'Object' (TJSObject)
+  end;
+
+  TPageFaviconUpdatedEvent_favicons = array of string;
+  TPageFaviconUpdatedEvent = class external name 'Object' (TJSObject)
+    favicons : TPageFaviconUpdatedEvent_favicons;
+  end;
+
+  TPageTitleUpdatedEvent = class external name 'Object' (TJSObject)
+    title : string;
+    explicitSet : boolean;
+  end;
+
+  TParameters = class external name 'Object' (TJSObject)
+    screenPosition : jsvalue;
+    screenSize : TSize;
+    viewPosition : TPoint;
+    deviceScaleFactor : Double;
+    viewSize : TSize;
+    scale : Double;
+  end;
+
+  TPayment = class external name 'Object' (TJSObject)
+    productIdentifier : string;
+    quantity : Double;
+    applicationUsername : string;
+    paymentDiscount : TPaymentDiscount;
+  end;
+
+  TPermissionCheckHandlerHandlerDetails = class external name 'Object' (TJSObject)
+    embeddingOrigin : string;
+    securityOrigin : string;
+    mediaType : jsvalue;
+    requestingUrl : string;
+    isMainFrame : boolean;
+  end;
+
+  TPermissionRequestHandlerHandlerDetails_mediaTypes = array of string;
+  TPermissionRequestHandlerHandlerDetails = class external name 'Object' (TJSObject)
+    externalURL : string;
+    securityOrigin : string;
+    mediaTypes : TPermissionRequestHandlerHandlerDetails_mediaTypes;
+    requestingUrl : string;
+    isMainFrame : boolean;
+  end;
+
+  TPluginCrashedEvent = class external name 'Object' (TJSObject)
+    name : string;
+    version : string;
+  end;
+
+  TPopupOptions_callback = Procedure;
+  TPopupOptions = class external name 'Object' (TJSObject)
+    window : TBrowserWindow;
+    x : Double;
+    y : Double;
+    positioningItem : Double;
+    callback : TPopupOptions_callback;
+  end;
+
+  TPreconnectOptions = class external name 'Object' (TJSObject)
+    url : string;
+    numSockets : Double;
+  end;
+
+  TPrintToPDFOptions = class external name 'Object' (TJSObject)
+    headerFooter : TJSObject;
+    landscape : boolean;
+    marginsType : Double;
+    scaleFactor : Double;
+    pageRanges : TJSObject;
+    pageSize : jsvalue;
+    printBackground : boolean;
+    printSelectionOnly : boolean;
+  end;
+
+  TPrivileges = class external name 'Object' (TJSObject)
+    standard : boolean;
+    secure : boolean;
+    bypassCSP : boolean;
+    allowServiceWorkers : boolean;
+    supportFetchAPI : boolean;
+    corsEnabled : boolean;
+    stream : boolean;
+  end;
+
+  TProgressBarOptions = class external name 'Object' (TJSObject)
+    mode : jsvalue;
+  end;
+
+  TProvider_spellCheck_callback = Procedure (misspeltWords : array of string);
+  TProvider_spellCheck = Procedure (words : array of string; callback : TProvider_spellCheck_callback);
+  TProvider = class external name 'Object' (TJSObject)
+    spellCheck : TProvider_spellCheck;
+  end;
+
+  TReadBookmark = class external name 'Object' (TJSObject)
+    title : string;
+    url : string;
+  end;
+
+  TRegistrationCompletedDetails = class external name 'Object' (TJSObject)
+    scope : string;
+  end;
+
+  TRelaunchOptions_args = array of string;
+  TRelaunchOptions = class external name 'Object' (TJSObject)
+    args : TRelaunchOptions_args;
+    execPath : string;
+  end;
+
+  TRenderProcessGoneDetails = class external name 'Object' (TJSObject)
+    reason : jsvalue;
+    exitCode : Double;
+  end;
+
+  TRequest = class external name 'Object' (TJSObject)
+    hostname : string;
+    certificate : TCertificate;
+    validatedCertificate : TCertificate;
+    isIssuedByKnownRoot : boolean;
+    verificationResult : string;
+    errorCode : Double;
+  end;
+
+  TResizeOptions = class external name 'Object' (TJSObject)
+    width : Double;
+    height : Double;
+    quality : string;
+  end;
+
+  TResourceUsage = class external name 'Object' (TJSObject)
+    images : TMemoryUsageDetails;
+    scripts : TMemoryUsageDetails;
+    cssStyleSheets : TMemoryUsageDetails;
+    xslStyleSheets : TMemoryUsageDetails;
+    fonts : TMemoryUsageDetails;
+    other : TMemoryUsageDetails;
+  end;
+
+  TResponse = class external name 'Object' (TJSObject)
+    cancel : boolean;
+    redirectURL : string;
+  end;
+
+  TResult = class external name 'Object' (TJSObject)
+    requestId : Double;
+    activeMatchOrdinal : Double;
+    matches : Double;
+    selectionArea : TRectangle;
+    finalUpdate : boolean;
+  end;
+
+  TSaveDialogOptions_filters = array of TFileFilter;
+  TSaveDialogOptions_properties = array of string;
+  TSaveDialogOptions = class external name 'Object' (TJSObject)
+    title : string;
+    defaultPath : string;
+    buttonLabel : string;
+    filters : TSaveDialogOptions_filters;
+    message : string;
+    nameFieldLabel : string;
+    showsTagField : boolean;
+    properties_ : TSaveDialogOptions_properties; external name 'properties';
+    securityScopedBookmarks : boolean;
+  end;
+
+  TSaveDialogReturnValue = class external name 'Object' (TJSObject)
+    canceled : boolean;
+    filePath : string;
+    bookmark : string;
+  end;
+
+  TSaveDialogSyncOptions_filters = array of TFileFilter;
+  TSaveDialogSyncOptions_properties = array of string;
+  TSaveDialogSyncOptions = class external name 'Object' (TJSObject)
+    title : string;
+    defaultPath : string;
+    buttonLabel : string;
+    filters : TSaveDialogSyncOptions_filters;
+    message : string;
+    nameFieldLabel : string;
+    showsTagField : boolean;
+    properties_ : TSaveDialogSyncOptions_properties; external name 'properties';
+    securityScopedBookmarks : boolean;
+  end;
+
+  TSelectHidDeviceDetails_deviceList = array of THIDDevice;
+  TSelectHidDeviceDetails = class external name 'Object' (TJSObject)
+    deviceList : TSelectHidDeviceDetails_deviceList;
+    frame : TWebFrameMain;
+  end;
+
+  TSettings_args = array of string;
+  TSettings = class external name 'Object' (TJSObject)
+    openAtLogin : boolean;
+    openAsHidden : boolean;
+    path : string;
+    args : TSettings_args;
+    enabled : boolean;
+    name : string;
+  end;
+
+  TSourcesOptions_types = array of string;
+  TSourcesOptions = class external name 'Object' (TJSObject)
+    types : TSourcesOptions_types;
+    thumbnailSize : TSize;
+    fetchWindowIcons : boolean;
+  end;
+
+  TSSLConfigConfig_disabledCipherSuites = array of Double;
+  TSSLConfigConfig = class external name 'Object' (TJSObject)
+    minVersion : string;
+    maxVersion : string;
+    disabledCipherSuites : TSSLConfigConfig_disabledCipherSuites;
+  end;
+
+  TStartLoggingOptions = class external name 'Object' (TJSObject)
+    captureMode : jsvalue;
+    maxFileSize : Double;
+  end;
+
+  TSystemMemoryInfo = class external name 'Object' (TJSObject)
+    total : Double;
+    free : Double;
+    swapTotal : Double;
+    swapFree : Double;
+  end;
+
+  TTitleOptions = class external name 'Object' (TJSObject)
+    fontType : jsvalue;
+  end;
+
+  TToBitmapOptions = class external name 'Object' (TJSObject)
+    scaleFactor : Double;
+  end;
+
+  TToDataURLOptions = class external name 'Object' (TJSObject)
+    scaleFactor : Double;
+  end;
+
+  TToPNGOptions = class external name 'Object' (TJSObject)
+    scaleFactor : Double;
+  end;
+
+  TTouchBarButtonConstructorOptions_click = Procedure;
+  TTouchBarButtonConstructorOptions = class external name 'Object' (TJSObject)
+    &label : string;external name 'label';
+    accessibilityLabel : string;
+    backgroundColor : string;
+    icon : jsvalue;
+    iconPosition : jsvalue;
+    click : TTouchBarButtonConstructorOptions_click;
+    enabled : boolean;
+  end;
+
+  TTouchBarColorPickerConstructorOptions_availableColors = array of string;
+  TTouchBarColorPickerConstructorOptions_change = Procedure (color : string);
+  TTouchBarColorPickerConstructorOptions = class external name 'Object' (TJSObject)
+    availableColors : TTouchBarColorPickerConstructorOptions_availableColors;
+    selectedColor : string;
+    change : TTouchBarColorPickerConstructorOptions_change;
+  end;
+
+  TTouchBarConstructorOptions_items = array of TJSObject;
+  TTouchBarConstructorOptions = class external name 'Object' (TJSObject)
+    items : TTouchBarConstructorOptions_items;
+    escapeItem : jsvalue;
+  end;
+
+  TTouchBarGroupConstructorOptions = class external name 'Object' (TJSObject)
+    items : TTouchBar;
+  end;
+
+  TTouchBarLabelConstructorOptions = class external name 'Object' (TJSObject)
+    &label : string;external name 'label';
+    accessibilityLabel : string;
+    textColor : string;
+  end;
+
+  TTouchBarPopoverConstructorOptions = class external name 'Object' (TJSObject)
+    &label : string;external name 'label';
+    icon : TNativeImage;
+    items : TTouchBar;
+    showCloseButton : boolean;
+  end;
+
+  TTouchBarScrubberConstructorOptions_items = array of TScrubberItem;
+  TTouchBarScrubberConstructorOptions_select = Procedure (selectedIndex : Double);
+  TTouchBarScrubberConstructorOptions_highlight = Procedure (highlightedIndex : Double);
+  TTouchBarScrubberConstructorOptions = class external name 'Object' (TJSObject)
+    items : TTouchBarScrubberConstructorOptions_items;
+    select : TTouchBarScrubberConstructorOptions_select;
+    highlight : TTouchBarScrubberConstructorOptions_highlight;
+    selectedStyle : jsvalue;
+    overlayStyle : jsvalue;
+    showArrowButtons : boolean;
+    mode : jsvalue;
+    continuous : boolean;
+  end;
+
+  TTouchBarSegmentedControlConstructorOptions_segments = array of TSegmentedControlSegment;
+  TTouchBarSegmentedControlConstructorOptions_change = Procedure (selectedIndex : Double; isSelected : boolean);
+  TTouchBarSegmentedControlConstructorOptions = class external name 'Object' (TJSObject)
+    segmentStyle : jsvalue;
+    mode : jsvalue;
+    segments : TTouchBarSegmentedControlConstructorOptions_segments;
+    selectedIndex : Double;
+    change : TTouchBarSegmentedControlConstructorOptions_change;
+  end;
+
+  TTouchBarSliderConstructorOptions_change = Procedure (newValue : Double);
+  TTouchBarSliderConstructorOptions = class external name 'Object' (TJSObject)
+    &label : string;external name 'label';
+    value : Double;
+    minValue : Double;
+    maxValue : Double;
+    change : TTouchBarSliderConstructorOptions_change;
+  end;
+
+  TTouchBarSpacerConstructorOptions = class external name 'Object' (TJSObject)
+    size : jsvalue;
+  end;
+
+  TTraceBufferUsageReturnValue = class external name 'Object' (TJSObject)
+    value : Double;
+    percentage : Double;
+  end;
+
+  TUpdateTargetUrlEvent = class external name 'Object' (TJSObject)
+    url : string;
+  end;
+
+  TUploadProgress = class external name 'Object' (TJSObject)
+    active : boolean;
+    started : boolean;
+    current : Double;
+    total : Double;
+  end;
+
+  TVisibleOnAllWorkspacesOptions = class external name 'Object' (TJSObject)
+    visibleOnFullScreen : boolean;
+    skipTransformProcessType : boolean;
+  end;
+
+  TWebContentsPrintOptions_pageRanges = array of TPageRanges;
+  TWebContentsPrintOptions = class external name 'Object' (TJSObject)
+    silent : boolean;
+    printBackground : boolean;
+    deviceName : string;
+    color : boolean;
+    margins : TMargins;
+    landscape : boolean;
+    scaleFactor : Double;
+    pagesPerSheet : Double;
+    collate : boolean;
+    copies : Double;
+    pageRanges : TWebContentsPrintOptions_pageRanges;
+    duplexMode : jsvalue;
+    dpi : TJSObject;
+    header : string;
+    footer : string;
+    pageSize : jsvalue;
+  end;
+
+  TWebviewTagPrintOptions_pageRanges = array of TPageRanges;
+  TWebviewTagPrintOptions = class external name 'Object' (TJSObject)
+    silent : boolean;
+    printBackground : boolean;
+    deviceName : string;
+    color : boolean;
+    margins : TMargins;
+    landscape : boolean;
+    scaleFactor : Double;
+    pagesPerSheet : Double;
+    collate : boolean;
+    copies : Double;
+    pageRanges : TWebviewTagPrintOptions_pageRanges;
+    duplexMode : jsvalue;
+    dpi : TJSObject;
+    header : string;
+    footer : string;
+    pageSize : jsvalue;
+  end;
+
+  TWillNavigateEvent = class external name 'Object' (TJSObject)
+    url : string;
+  end;
+
+  TWillResizeDetails = class external name 'Object' (TJSObject)
+    edge : jsvalue;
+  end;
+
+  TEditFlags = class external name 'Object' (TJSObject)
+    canUndo : boolean;
+    canRedo : boolean;
+    canCut : boolean;
+    canCopy : boolean;
+    canPaste : boolean;
+    canDelete : boolean;
+    canSelectAll : boolean;
+    canEditRichly : boolean;
+  end;
+
+  TFoundInPageResult = class external name 'Object' (TJSObject)
+    requestId : Double;
+    activeMatchOrdinal : Double;
+    matches : Double;
+    selectionArea : TRectangle;
+    finalUpdate : boolean;
+  end;
+
+  TLaunchItems_args = array of string;
+  TLaunchItems = class external name 'Object' (TJSObject)
+    name : string;
+    path : string;
+    args : TLaunchItems_args;
+    scope : string;
+    enabled : boolean;
+  end;
+
+  TMargins = class external name 'Object' (TJSObject)
+    marginType : jsvalue;
+    top : Double;
+    bottom : Double;
+    left : Double;
+    right : Double;
+  end;
+
+  TMediaFlags = class external name 'Object' (TJSObject)
+    inError : boolean;
+    isPaused : boolean;
+    isMuted : boolean;
+    hasAudio : boolean;
+    isLooping : boolean;
+    isControlsVisible : boolean;
+    canToggleControls : boolean;
+    canPrint : boolean;
+    canSave : boolean;
+    canShowPictureInPicture : boolean;
+    isShowingPictureInPicture : boolean;
+    canRotate : boolean;
+    canLoop : boolean;
+  end;
+
+  TPageRanges = class external name 'Object' (TJSObject)
+    from : Double;
+    &to : Double;external name 'to';
+  end;
+
+  TParams_dictionarySuggestions = array of string;
+  TParams = class external name 'Object' (TJSObject)
+    x : Double;
+    y : Double;
+    linkURL : string;
+    linkText : string;
+    pageURL : string;
+    frameURL : string;
+    srcURL : string;
+    mediaType : jsvalue;
+    hasImageContents : boolean;
+    isEditable : boolean;
+    selectionText : string;
+    titleText : string;
+    altText : string;
+    suggestedFilename : string;
+    selectionRect : TRectangle;
+    selectionStartOffset : Double;
+    referrerPolicy : TReferrer;
+    misspelledWord : string;
+    dictionarySuggestions : TParams_dictionarySuggestions;
+    frameCharset : string;
+    inputFieldType : string;
+    spellcheckEnabled : boolean;
+    menuSourceType : jsvalue;
+    mediaFlags : TMediaFlags;
+    editFlags : TEditFlags;
+  end;
+
+  TTitleBarOverlay = class external name 'Object' (TJSObject)
+    color : string;
+    symbolColor : string;
+    height : Double;
+  end;
+
+  TWebPreferences_additionalArguments = array of string;
+  TWebPreferences = class external name 'Object' (TJSObject)
+    devTools : boolean;
+    nodeIntegration : boolean;
+    nodeIntegrationInWorker : boolean;
+    nodeIntegrationInSubFrames : boolean;
+    preload : string;
+    sandbox : boolean;
+    session : TSession;
+    partition : string;
+    zoomFactor : Double;
+    javascript : boolean;
+    webSecurity : boolean;
+    allowRunningInsecureContent : boolean;
+    images : boolean;
+    imageAnimationPolicy : jsvalue;
+    textAreasAreResizable : boolean;
+    webgl : boolean;
+    plugins : boolean;
+    experimentalFeatures : boolean;
+    scrollBounce : boolean;
+    enableBlinkFeatures : string;
+    disableBlinkFeatures : string;
+    defaultFontFamily : TDefaultFontFamily;
+    defaultFontSize : Double;
+    defaultMonospaceFontSize : Double;
+    minimumFontSize : Double;
+    defaultEncoding : string;
+    backgroundThrottling : boolean;
+    offscreen : boolean;
+    contextIsolation : boolean;
+    nativeWindowOpen : boolean;
+    webviewTag : boolean;
+    additionalArguments : TWebPreferences_additionalArguments;
+    safeDialogs : boolean;
+    safeDialogsMessage : string;
+    disableDialogs : boolean;
+    navigateOnDragDrop : boolean;
+    autoplayPolicy : jsvalue;
+    disableHtmlFullscreenWindowResize : boolean;
+    accessibleTitle : string;
+    spellcheck : boolean;
+    enableWebSQL : boolean;
+    v8CacheOptions : jsvalue;
+    enablePreferredSizeMode : boolean;
+  end;
+
+  TDefaultFontFamily = class external name 'Object' (TJSObject)
+    standard : string;
+    serif : string;
+    sansSerif : string;
+    monospace : string;
+    cursive : string;
+    fantasy : string;
+  end;
+
+  TRemoteMainInterface = class external name 'Object' (TJSObject)
+    app : TApp;
+    autoUpdater : TAutoUpdater;
+    BrowserView : TBrowserView;
+    BrowserWindow : TBrowserWindow;
+    clipboard : TClipboard;
+    contentTracing : TContentTracing;
+    crashReporter : TCrashReporter;
+    desktopCapturer : TDesktopCapturer;
+    dialog : TDialog;
+    globalShortcut : TGlobalShortcut;
+    inAppPurchase : TInAppPurchase;
+    ipcMain : TIpcMain;
+    Menu : TMenu;
+    MenuItem : TMenuItem;
+    MessageChannelMain : TMessageChannelMain;
+    nativeImage : TNativeImage;
+    nativeTheme : TNativeTheme;
+    net : TNet;
+    netLog : TNetLog;
+    Notification : TNotification;
+    powerMonitor : TPowerMonitor;
+    powerSaveBlocker : TPowerSaveBlocker;
+    protocol : TProtocol;
+    safeStorage : TSafeStorage;
+    screen : TScreen;
+    session : TSession;
+    ShareMenu : TShareMenu;
+    shell : TShell;
+    systemPreferences : TSystemPreferences;
+    TouchBar : TTouchBar;
+    Tray : TTray;
+    webContents : TWebContents;
+    webFrameMain : TWebFrameMain;
+  end;
+
+  // Part of NodeJS
+  TProcess = class external name 'Object' (TJSObject)
+    Fchrome : string; external name 'chrome';
+    FcontextId : string; external name 'contextId';
+    FcontextIsolated : boolean; external name 'contextIsolated';
+    FdefaultApp : boolean; external name 'defaultApp';
+    Felectron : string; external name 'electron';
+    FisMainFrame : boolean; external name 'isMainFrame';
+    Fmas : boolean; external name 'mas';
+    FresourcesPath : string; external name 'resourcesPath';
+    Fsandboxed : boolean; external name 'sandboxed';
+    Ftype : jsvalue; external name 'type';
+    FwindowsStore : boolean; external name 'windowsStore';
+    Function &on(event : String; listener : TJSFunction): TProcess;
+    Function addListener(event : String; listener : TJSFunction): TProcess;
+    Procedure crash;
+    Function getBlinkMemoryInfo: libelectron.TBlinkMemoryInfo;
+    Function getCPUUsage: libelectron.TCPUUsage;
+    Function getCreationTime: jsvalue;
+    Function getHeapStatistics: libelectron.THeapStatistics;
+    Function getIOCounters: libelectron.TIOCounters;
+    Function getProcessMemoryInfo: TJSPromise;
+    Function getSystemMemoryInfo: libelectron.TSystemMemoryInfo;
+    Function getSystemVersion: string;
+    Procedure hang;
+    Function once(event : String; listener : TJSFunction): TProcess;
+    Function removeListener(event : String; listener : TJSFunction): TProcess;
+    Procedure setFdLimit(maxDescriptors : Double);
+    Function takeHeapSnapshot(filePath : string): boolean;
+    Property chrome : string Read Fchrome;
+    Property contextId : string Read FcontextId;
+    Property contextIsolated : boolean Read FcontextIsolated;
+    Property defaultApp : boolean Read FdefaultApp;
+    Property electron : string Read Felectron;
+    Property isMainFrame : boolean Read FisMainFrame;
+    Property mas : boolean Read Fmas;
+    noAsar : boolean;
+    noDeprecation : boolean;
+    Property resourcesPath : string Read FresourcesPath;
+    Property sandboxed : boolean Read Fsandboxed;
+    throwDeprecation : boolean;
+    traceDeprecation : boolean;
+    traceProcessWarnings : boolean;
+    Property type_ : jsvalue Read Ftype;
+    Property windowsStore : boolean Read FwindowsStore;
+  end;
+
+  // Part of TNodeJS
+  TProcessVersions = class external name 'Object' (TJSObject)
+    Felectron : string; external name 'electron';
+    Fchrome : string; external name 'chrome';
+    Property electron : string Read Felectron;
+    Property chrome : string Read Fchrome;
+  end;
+
+
+  
+var
+  // Full export with
+  electron : TCrossProcessExports;
+  __dirname: string; external name '__dirname';
+  // These provide the restricted environment.
+  function preload : TPreloadExports;
+  function main : TMainExports;
+  function renderer : TRendererExports;
+
+
+implementation
+
+function renderer : TRendererExports;
+
+begin
+  Result:=TRendererExports(JSValue(Electron));
+end;
+
+function main : TMainExports;
+
+begin
+  Result:=TMainExports(JSValue(Electron));
+end;
+
+Function preload : TpreloadExports;
+
+begin
+  Result:=TPreloadExports(JSValue(Electron));
+end;
+
+initialization
+  electron:=TCrossProcessExports(Require('electron'));
+end.