chore(deps): bump actions/download-artifact in /.github/workflows (#398)
[figma-linux.git] / src / types / index.d.ts
blob1bc771c9bb76fabce2ee1a9af62e2f0b6cd1c1f5
1 declare namespace Electron {
2   interface RemoteMainInterface {
3     app: App;
4   }
6   // interface MenuItemConstructorOptions {
7   //   click?: (menuItem: Menu.PluginMenuItem, browserWindow: BrowserWindow | undefined, event: KeyboardEvent) => void;
8   // }
10   // interface MenuItem {
11   //   click: (item: MenuItemConstructorOptions, window: BrowserWindow, event: Event) => void;
12   // }
14   interface App extends NodeJS.EventEmitter {
15     on(event: "newFile", listener: (sender: Electron.WebContents) => void): this;
16     on(event: "newWindow", listener: (sender: Electron.WebContents) => void): this;
17     on(event: "reloadTab", listener: (tabId: number) => void): this;
18     on(event: "closeTab", listener: (windowId: number, tabId: number) => void): this;
19     on(event: "closeCurrentTab", listener: (windowId: number) => void): this;
20     on(event: "reopenClosedTab", listener: (windowId: number) => void): this;
21     on(event: "closeCurrentWindow", listener: (windowId: number) => void): this;
22     on(event: "toggleWindowFullscreen", listener: (windowId: number) => void): this;
23     on(event: "closeCommunityTab", listener: () => void): this;
24     on(event: "closeAllTab", listener: () => void): this;
25     on(event: "chromeGpu", listener: (windowId: number) => void): this;
26     on(event: "openFileUrlClipboard", listener: (sender: Electron.WebContents) => void): this;
27     on(event: "openFileBrowser", listener: (sender: Electron.WebContents) => void): this;
28     on(
29       event: "restoreClosedTab",
30       listener: (windowId: number, title: string, uri: string) => void,
31     ): this;
32     on(event: "handle-page-command", listener: (item: any, window: BrowserWindow) => void): this;
33     on(event: "log", listener: (data: any) => void): this;
34     on(event: "signOut", listener: () => void): this;
35     on(event: "themes-add-repository", listener: () => void): this;
36     on(event: "themes-remove-repository", listener: () => void): this;
37     on(event: "toggleSettingsDeveloperTools", listener: () => void): this;
38     on(event: "toggleCurrentWindowDevTools", listener: () => void): this;
39     on(event: "toggleCurrentTabDevTools", listener: (windowId: number) => void): this;
40     on(
41       event: "handlePluginMenuAction",
42       listener: (windowId: number, pluginMenuAction: Menu.MenuAction) => void,
43     ): this;
44     on(event: "handlePluginManageAction", listener: () => void): this;
45     on(event: "handleWidgetManageAction", listener: () => void): this;
46     on(event: "handleUrl", listener: (url: string) => void): this;
47     on(event: "openUrlInNewTab", listener: (url: string) => void): this;
48     on(event: "openUrlFromCommunity", listener: (url: string) => void): this;
49     on(event: "openSettingsView", listener: () => void): this;
50     on(event: "windowClose", listener: (windowId: number) => void): this;
51     on(event: "windowFocus", listener: (windowId: number) => void): this;
52     on(event: "syncThemesStart", listener: () => void): this;
53     on(event: "syncThemesEnd", listener: (themes: Themes.Theme[]) => void): this;
54     on(event: "loadCreatorTheme", listener: (themes: Themes.Theme) => void): this;
55     on(event: "loadCurrentTheme", listener: (themes: Themes.Theme) => void): this;
56     on(event: "loadCreatorThemes", listener: (themes: Themes.Theme[]) => void): this;
57     on(event: "requestBoundsForTabView", listener: (windowId: number) => void): this;
58     on(event: "relaunchApp", listener: () => void): this;
59     on(event: "quitApp", listener: () => void): this;
60     on(event: "reloadCurrentTheme", listener: () => void): this;
61     on(event: "focusLastWindow", listener: () => void): this;
62     on(
63       event: "needUpdateMenu",
64       listener: (
65         windowId: number,
66         tabId?: number,
67         actionCheckedState?: { [key: string]: boolean },
68       ) => void,
69     ): this;
70     on(
71       event: "handleCallbackForTab",
72       listener: (tabId: number, callbackID: number, args: any) => void,
73     ): this;
74     on(event: "enableColorSpaceSrgbWasChanged", listener: (enable: boolean) => void): this;
75     on(event: "chromiumFlagsChanged", listener: (enable: boolean) => void): this;
76     on(event: "disableThemesChanged", listener: (enable: boolean) => void): this;
78     emit(event: string, ...args: any[]): boolean;
79     emit(event: "newFile", sender: Electron.WebContents): boolean;
80     emit(event: "newWindow", sender: Electron.WebContents): boolean;
81     emit(event: "reloadTab", tabId: number): boolean;
82     emit(event: "closeCommunityTab"): boolean;
83     emit(event: "closeTab", windowId: number, tabId: number): boolean;
84     emit(event: "closeCurrentTab", windowId: number): boolean;
85     emit(event: "reopenClosedTab", windowId: number): boolean;
86     emit(event: "closeCurrentWindow", windowId: number): boolean;
87     emit(event: "toggleWindowFullscreen", windowId: number): boolean;
88     emit(event: "toggleCurrentWindowFullscreen", sender: Electron.WebContents): boolean;
89     emit(event: "closeAllTab"): boolean;
90     emit(event: "chromeGpu", windowId: number): boolean;
91     emit(event: "openFileUrlClipboard", sender: Electron.WebContents): boolean;
92     emit(event: "openFileBrowser", sender: Electron.WebContents): boolean;
93     emit(event: "restoreClosedTab", windowId: number, title: string, uri: string): boolean;
94     emit(event: "handle-page-command", item: any, window: BrowserWindow): boolean;
95     emit(event: "log", data: any): boolean;
96     emit(event: "signOut"): boolean;
97     emit(event: "themes-add-repository"): boolean;
98     emit(event: "themes-remove-repository"): boolean;
99     emit(event: "toggleSettingsDeveloperTools"): boolean;
100     emit(event: "toggleCurrentWindowDevTools"): boolean;
101     emit(event: "toggleCurrentTabDevTools", windowId: number): boolean;
102     emit(
103       event: "handlePluginMenuAction",
104       windowId: number,
105       pluginMenuAction: Menu.MenuAction,
106     ): boolean;
107     emit(event: "handlePluginManageAction"): boolean;
108     emit(event: "handleWidgetManageAction"): boolean;
109     emit(event: "handleUrl", url: string): boolean;
110     emit(event: "openUrlInNewTab", url: string): boolean;
111     emit(event: "openUrlFromCommunity", url: string): boolean;
112     emit(event: "openSettingsView"): boolean;
113     emit(event: "windowClose", windowId: number): void;
114     emit(event: "windowFocus", windowId: number): void;
115     emit(event: "syncThemesStart"): void;
116     emit(event: "syncThemesEnd", themes: Themes.Theme[]): void;
117     emit(event: "loadCreatorTheme", themes: Themes.Theme): void;
118     emit(event: "loadCurrentTheme", themes: Themes.Theme): void;
119     emit(event: "loadCreatorThemes", themes: Themes.Theme[]): void;
120     emit(event: "requestBoundsForTabView", windowId: number): void;
121     emit(event: "relaunchApp"): void;
122     emit(event: "quitApp"): void;
123     emit(event: "reloadCurrentTheme"): void;
124     emit(event: "focusLastWindow"): void;
125     emit(
126       event: "needUpdateMenu",
127       windowId: number,
128       tabId?: number,
129       actionCheckedState?: { [key: string]: boolean },
130     ): void;
131     emit(event: "handleCallbackForTab", tabId: number, callbackID: number, args: any): void;
132     emit(event: "enableColorSpaceSrgbWasChanged", enable: boolean): void;
133     emit(event: "chromiumFlagsChanged", enable: boolean): void;
134     emit(event: "disableThemesChanged", enable: boolean): void;
135   }
137   interface IpcMain extends NodeJS.EventEmitter {
138     on(channel: string, listener: (event: IpcMainInvokeEvent, args: any) => void): this;
139     on(channel: "setTitle", listener: (event: IpcMainInvokeEvent, title: string) => void): this;
140     on(
141       channel: "openCommunity",
142       listener: (event: IpcMainInvokeEvent, args: WebApi.OpenCommunity) => void,
143     ): this;
144     on(channel: "openFile", listener: (event: IpcMainInvokeEvent, url: string) => void): this;
145     on(channel: "closeAllTab", listener: (event: IpcMainInvokeEvent) => void): this;
146     on(channel: "setFocusToMainTab", listener: (event: IpcMainInvokeEvent) => void): this;
147     on(channel: "setFocusToCommunityTab", listener: (event: IpcMainInvokeEvent) => void): this;
148     on(channel: "setTabFocus", listener: (event: IpcMainInvokeEvent, id: number) => void): this;
149     on(channel: "closeTab", listener: (event: IpcMainInvokeEvent, id: number) => void): this;
150     on(
151       channel: "closeSettingsView",
152       listener: (event: IpcMainInvokeEvent, settings: Types.SettingsInterface) => void,
153     ): this;
154     on(
155       channel: "themeCreatorExportTheme",
156       listener: (event: IpcMainInvokeEvent, theme: Themes.Theme) => void,
157     ): this;
158     on(
159       channel: "themeCreatorAddTheme",
160       listener: (event: IpcMainInvokeEvent, theme: Themes.Theme) => void,
161     ): this;
162     on(
163       channel: "themeCreatorRemoveTheme",
164       listener: (event: IpcMainInvokeEvent, themeId: string) => void,
165     ): this;
166     on(channel: "enabled", listener: (event: IpcMainInvokeEvent, enabled: boolean) => void): this;
167     on(
168       channel: "updateFigmaUiScale",
169       listener: (event: IpcMainInvokeEvent, scale: number) => void,
170     ): this;
171     on(
172       channel: "updatePanelScale",
173       listener: (event: IpcMainInvokeEvent, scale: number) => void,
174     ): this;
175     on(
176       channel: "startAppAuth",
177       listener: (event: IpcMainInvokeEvent, auth: { grantPath: string }) => void,
178     ): this;
179     on(
180       channel: "setInitialOptions",
181       listener: (event: IpcMainInvokeEvent, data: WebApi.SetInitOptions) => void,
182     ): this;
183     on(
184       channel: "finishAppAuth",
185       listener: (event: IpcMainInvokeEvent, auth: { redirectURL: string }) => void,
186     ): this;
187     on(
188       channel: "setAuthedUsers",
189       listener: (event: IpcMainInvokeEvent, userIds: string[]) => void,
190     ): this;
191     on(channel: "setUser", listener: (event: IpcMainInvokeEvent, userId: string) => void): this;
192     on(
193       channel: "setUsingMicrophone",
194       listener: (event: IpcMainInvokeEvent, isUsingMicrophone: boolean) => void,
195     ): this;
196     on(
197       channel: "setIsInVoiceCall",
198       listener: (event: IpcMainInvokeEvent, isInVoiceCall: boolean) => void,
199     ): this;
200     on(
201       channel: "setWorkspaceName",
202       listener: (event: IpcMainInvokeEvent, name: string) => void,
203     ): this;
204     on(
205       channel: "setFigjamEnabled",
206       listener: (event: IpcMainInvokeEvent, enabled: boolean) => void,
207     ): this;
208     on(
209       channel: "setFeatureFlags",
210       listener: (event: IpcMainInvokeEvent, data: { featureFlags: Types.FeatureFlags }) => void,
211     ): this;
212     on(channel: "logDebug", listener: (event: IpcMainInvokeEvent, ...args: any[]) => void): this;
213     on(channel: "logInfo", listener: (event: IpcMainInvokeEvent, ...args: any[]) => void): this;
214     on(channel: "logError", listener: (event: IpcMainInvokeEvent, ...args: any[]) => void): this;
215     on(
216       channel: "openDevTools",
217       listener: (
218         event: IpcMainInvokeEvent,
219         mode: "right" | "bottom" | "undocked" | "detach",
220       ) => void,
221     ): this;
222     on(
223       channel: "removeLocalFileExtension",
224       listener: (event: IpcMainInvokeEvent, id: number) => void,
225     ): this;
226     on(
227       channel: "openExtensionDirectory",
228       listener: (event: IpcMainInvokeEvent, id: number) => void,
229     ): this;
230     on(channel: "openMainMenu", listener: (event: IpcMainInvokeEvent) => void): this;
231     on(channel: "openMainTabMenu", listener: (event: IpcMainInvokeEvent) => void): this;
232     on(channel: "openCommunityTabMenu", listener: (event: IpcMainInvokeEvent) => void): this;
233     on(channel: "openTabMenu", listener: (event: IpcMainInvokeEvent, tabId: number) => void): this;
234     on(channel: "appExit", listener: (event: IpcMainInvokeEvent) => void): this;
235     on(channel: "newProject", listener: (event: IpcMainInvokeEvent) => void): this;
236     on(channel: "closeCommunityTab", listener: (event: IpcMainInvokeEvent) => void): this;
237     on(
238       channel: "updateVisibleNewProjectBtn",
239       listener: (event: IpcMainInvokeEvent, visible: boolean) => void,
240     ): this;
241     on(
242       channel: "updateFullscreenMenuState",
243       listener: (event: IpcMainInvokeEvent, state: Menu.State) => void,
244     ): this;
245     on(
246       channel: "saveCreatorTheme",
247       listener: (event: IpcMainInvokeEvent, theme: Themes.Theme) => void,
248     ): this;
249     on(channel: "syncThemes", listener: (event: IpcMainInvokeEvent) => void): this;
250     on(
251       channel: "setClipboardData",
252       listener: (event: IpcMainInvokeEvent, data: WebApi.SetClipboardData) => void,
253     ): this;
254     on(
255       channel: "set-use-zenity",
256       listener: (event: IpcMainInvokeEvent, value: boolean) => void,
257     ): this;
258     on(
259       channel: "updateFigmaUiScale",
260       listener: (event: IpcMainInvokeEvent, theme: Themes.Theme) => void,
261     ): this;
262     on(
263       channel: "windowClose",
264       listener: (event: IpcMainInvokeEvent, tabs: Types.TabFront[]) => void,
265     ): this;
266     on(channel: "changeTheme", listener: (event: IpcMainEvent, theme: Themes.Theme) => void): this;
267     on(channel: "toggleThemeCreatorPreviewMask", listener: (event: IpcMainEvent) => void): this;
268     on(
269       channel: "getSettings",
270       listener: (event: IpcMainEvent, settings: Types.SettingsInterface) => void,
271     ): this;
272     on(channel: "requestMicrophonePermission", listener: (event: IpcMainEvent) => void): this;
273     on(
274       channel: "web-callback:registerManifestChangeObserver",
275       listener: (event: IpcMainEvent, callbackID: number, args?: any) => void,
276     ): this;
277     on(
278       channel: "web-callback:registerCodeChangeObserver",
279       listener: (event: IpcMainEvent, callbackID: number, args?: any) => void,
280     ): this;
281     on(
282       channel: "web-callback:registerUiChangeObserver",
283       listener: (event: IpcMainEvent, callbackID: number, args?: any) => void,
284     ): this;
286     handle(
287       channel: "writeNewExtensionToDisk",
288       listener: (
289         event: IpcMainInvokeEvent,
290         data: WebApi.WriteNewExtensionToDiskArgs,
291       ) => Promise<number> | number,
292     ): void;
293     handle(
294       channel: "getAllLocalFileExtensionIds",
295       listener: (event: IpcMainInvokeEvent) => Promise<void> | any,
296     ): void;
297     handle(
298       channel: "getLocalFileExtensionManifest",
299       listener: (
300         event: IpcMainInvokeEvent,
301         id: number,
302       ) => Promise<void> | Extensions.ExtensionWithManifest | Extensions.ExtensionWithError,
303     ): void;
304     handle(
305       channel: "getLocalFileExtensionSource",
306       listener: (
307         event: IpcMainInvokeEvent,
308         id: number,
309       ) => Promise<void> | Extensions.ExtensionSource,
310     ): void;
311     handle(
312       channel: "createMultipleNewLocalFileExtensions",
313       listener: (
314         event: IpcMainInvokeEvent,
315         data: WebApi.CreateMultipleExtension,
316       ) => Promise<void> | any,
317     ): void;
318     handle(
319       channel: "createFile",
320       listener: (event: IpcMainInvokeEvent, data: WebApi.CreateFile) => Promise<void> | any,
321     ): void;
322     handle(
323       channel: "isDevToolsOpened",
324       listener: (event: IpcMainInvokeEvent) => Promise<void> | any,
325     ): void;
326     handle(
327       channel: "themesIsDisabled",
328       listener: (event: IpcMainInvokeEvent) => Promise<void> | boolean,
329     ): void;
330     handle(
331       channel: "writeFiles",
332       listener: (event: IpcMainInvokeEvent, data: WebApi.WriteFiles) => Promise<void> | void,
333     ): void;
334     handle(
335       channel: "getFonts",
336       listener: (event: IpcMainInvokeEvent) => Promise<void> | Fonts.IFonts,
337     ): void;
338     handle(
339       channel: "getFontFile",
340       listener: (event: IpcMainInvokeEvent, data: WebApi.GetFontFile) => Promise<void> | Buffer,
341     ): void;
342     handle(
343       channel: "selectExportDirectory",
344       listener: (event: IpcMainInvokeEvent) => Promise<string | null>,
345     ): void;
346     handle(
347       channel: "writeNewExtensionDirectoryToDisk",
348       listener: (
349         event: IpcMainInvokeEvent,
350         data: WebApi.WriteNewExtensionDirectoryToDisk,
351       ) => Promise<string | null>,
352     ): void;
353     handle(
354       channel: "getLocalManifestFileExtensionIdsToCachedMetadataMap",
355       listener: (event: IpcMainInvokeEvent) => Promise<string | null>,
356     ): void;
357   }
359   interface IpcRenderer extends NodeJS.EventEmitter {
360     on(channel: "renderView", listener: (event: IpcRendererEvent, view: Types.View) => void): this;
361     on(
362       channel: "updateVisibleNewProjectBtn",
363       listener: (event: IpcRendererEvent, visible: boolean) => void,
364     ): this;
365     on(
366       channel: "setPanelScale",
367       listener: (event: IpcRendererEvent, scale: number, height: number) => void,
368     ): this;
369     on(channel: "updateUiScale", listener: (event: IpcRendererEvent, scale: number) => void): this;
370     on(channel: "closeAllTabs", listener: (event: IpcRendererEvent) => void): this;
371     on(
372       channel: "setTitle",
373       listener: (event: IpcRendererEvent, data: { id: number; title: string }) => void,
374     ): this;
375     on(channel: "didTabAdd", listener: (event: IpcRendererEvent, data: Types.Tab) => void): this;
376     on(
377       channel: "themesLoaded",
378       listener: (event: IpcRendererEvent, themes: Themes.Theme[]) => void,
379     ): this;
380     on(channel: "toggleThemeCreatorPreviewMask", listener: (event: IpcRendererEvent) => void): this;
381     on(channel: "focusTab", listener: (event: IpcRendererEvent, tabId: number) => void): this;
382     on(
383       channel: "newFileBtnVisible",
384       listener: (event: IpcRendererEvent, visible: boolean) => void,
385     ): this;
386     on(channel: "tabWasClosed", listener: (event: IpcRendererEvent, tabId: number) => void): this;
387     on(
388       channel: "setUsingMicrophone",
389       listener: (event: IpcRendererEvent, data: { id: number; isUsingMicrophone: boolean }) => void,
390     ): this;
391     on(
392       channel: "setIsInVoiceCall",
393       listener: (event: IpcRendererEvent, data: { id: number; isInVoiceCall: boolean }) => void,
394     ): this;
395     on(
396       channel: "loadCreatorTheme",
397       listener: (event: IpcRendererEvent, theme: Themes.Theme) => void,
398     ): this;
399     on(
400       channel: "loadCurrentTheme",
401       listener: (event: IpcRendererEvent, theme: Themes.Theme) => void,
402     ): this;
403     on(
404       channel: "loadCreatorThemes",
405       listener: (event: IpcRendererEvent, themes: Themes.Theme[]) => void,
406     ): this;
407     on(channel: "syncThemesStart", listener: (event: IpcRendererEvent) => void): this;
408     on(channel: "syncThemesEnd", listener: (event: IpcRendererEvent) => void): this;
409     on(channel: "windowDidMaximized", listener: (event: IpcRendererEvent) => void): this;
410     on(channel: "windowDidRestored", listener: (event: IpcRendererEvent) => void): this;
411     on(
412       channel: "isMainMenuOpen",
413       listener: (event: IpcRendererEvent, isOpen: boolean) => void,
414     ): this;
415     on(channel: "communityTabWasClose", listener: (event: IpcRendererEvent) => void): this;
416     on(
417       channel: "setLoading",
418       listener: (event: IpcRendererEvent, tabId: number, loading: boolean) => void,
419     ): this;
420     on(
421       channel: "loadSettings",
422       listener: (event: IpcRendererEvent, settings: Types.SettingsInterface) => void,
423     ): this;
424     on(
425       channel: "getThemeCreatorPalette",
426       listener: (event: IpcRendererEvent, palette: Themes.Palette) => void,
427     ): this;
428     on(
429       channel: "changeZoomFactor",
430       listener: (event: IpcRendererEvent, zoom: number) => void,
431     ): this;
432     on(channel: "openCommunity", listener: (event: IpcRendererEvent) => void): this;
433     on(
434       channel: "handleSetFullScreen",
435       listener: (event: IpcRendererEvent, fullscreen: boolean) => void,
436     ): this;
438     send(channel: string, ...args: any[]): void;
439     send(channel: "setTitle", data: { id: number; title: string }): this;
440     send(channel: "openCommunity", args: WebApi.OpenCommunity): this;
441     send(channel: "openFile", url: string): this;
442     send(channel: "closeAllTab"): this;
443     send(channel: "setFocusToMainTab"): this;
444     send(channel: "setFocusToCommunityTab"): this;
445     send(channel: "setTabFocus", id: number): this;
446     send(channel: "closeTab", id: number): this;
447     send(channel: "closeSettingsView", settings: Types.SettingsInterface): this;
448     send(channel: "themeCreatorExportTheme", theme: Themes.Theme): this;
449     send(channel: "themeCreatorAddTheme", theme: Themes.Theme): this;
450     send(channel: "themeCreatorRemoveTheme", themeId: string): this;
451     send(channel: "enabled", enabled: boolean): this;
452     send(channel: "updateFigmaUiScale", scale: number): this;
453     send(channel: "logDebug", ...args: any[]): this;
454     send(channel: "logInfo", ...args: any[]): this;
455     send(channel: "logError", ...args: any[]): this;
456     send(channel: "removeLocalFileExtension", id: number): this;
457     send(channel: "openExtensionDirectory", id: number): this;
458     send(channel: "openMainMenu"): this;
459     send(channel: "openMainTabMenu"): this;
460     send(channel: "openCommunityTabMenu"): this;
461     send(channel: "openTabMenu", tabId: number): this;
462     send(channel: "newProject"): this;
463     send(channel: "closeCommunityTab"): this;
464     send(channel: "appExit"): this;
465     send(channel: "updateVisibleNewProjectBtn", visible: boolean): this;
466     send(channel: "updateFullscreenMenuState", state: Menu.State): this;
467     send(channel: "saveCreatorTheme", theme: Themes.Theme): this;
468     send(channel: "syncThemes"): this;
469     send(channel: "setClipboardData", data: WebApi.SetClipboardData): this;
470     send(channel: "set-use-zenity", value: boolean): this;
471     send(channel: "windowDidMaximized"): this;
472     send(channed: "windowDidRestored"): this;
473     send(channed: "changeTheme", theme: Themes.Theme): this;
474     send(channed: "windowClose", tabs: Types.TabFront[]): this;
475     send(channed: "toggleThemeCreatorPreviewMask"): this;
476     send(channed: "setInitialOptions", data: WebApi.SetInitOptions): this;
477     send(channed: "setUser", userId: string): this;
478     send(channed: "toggleCurrentWindowFullscreen"): this;
479     send(
480       channed: "web-callback:registerManifestChangeObserver",
481       callbackID: number,
482       args?: any,
483     ): this;
484     send(channed: "web-callback:registerCodeChangeObserver", callbackID: number, args?: any): this;
485     send(channed: "web-callback:registerUiChangeObserver", callbackID: number, args?: any): this;
487     sendSync(channed: "getSettings"): Types.SettingsInterface;
489     invoke(
490       channel: "writeNewExtensionToDisk",
491       data: WebApi.WriteNewExtensionToDiskArgs,
492     ): Promise<number>;
493     invoke(channel: "getAllLocalFileExtensionIds"): Promise<number[]>;
494     invoke(channel: "getLocalFileExtensionManifest", id: number): Promise<number[]>;
495     invoke(channel: "getLocalFileExtensionSource", id: number): Promise<Extensions.ExtensionSource>;
496     invoke(
497       channel: "createMultipleNewLocalFileExtensions",
498       data: WebApi.CreateMultipleExtension,
499     ): Promise<any>;
500     invoke(channel: "createFile", data: WebApi.CreateFile): Promise<any>;
501     invoke(channel: "themesIsDisabled"): Promise<boolean>;
502     invoke(channel: "isDevToolsOpened"): Promise<boolean>;
503     invoke(channel: "writeFiles", data: WebApi.WriteFiles): Promise<void>;
504     invoke(channel: "getFonts"): Promise<Fonts.IFonts>;
505     invoke(channel: "getFontFile", data: WebApi.GetFontFile): Promise<Buffer>;
506     invoke(channel: "selectExportDirectory"): Promise<string | null>;
507     invoke(channel: "updatePanelScale", scale: number): this;
508     invoke(channel: "requestMicrophonePermission"): this;
509     invoke(
510       channel: "writeNewExtensionDirectoryToDisk",
511       data: WebApi.WriteNewExtensionDirectoryToDisk,
512     ): this;
513     invoke(channel: "getLocalManifestFileExtensionIdsToCachedMetadataMap"): this;
514   }
516   interface WebContents extends NodeJS.EventEmitter {
517     send(channel: "renderView", view: Types.View): void;
518     send(channel: "themesLoaded", themes: Themes.Theme[]): void;
519     send(channel: "toggleThemeCreatorPreviewMask"): void;
520     send(channel: "updateVisibleNewProjectBtn", visible: boolean): void;
521     send(channel: "setPanelScale", scale: number, height: number): void;
522     send(channel: "updateUiScale", scale: number): void;
523     send(channel: "closeAllTab"): void;
524     send(channel: "setTitle", data: { id: number; title: string }): void;
525     send(channel: "didTabAdd", data: Types.Tab): this;
526     send(channel: "handleUrl", url: string): this;
527     send(channel: "focusTab", tabId: Types.TabIdType): this;
528     send(channel: "newFileBtnVisible", visible: boolean): this;
529     send(channel: "tabWasClosed", tabId: number): this;
530     send(channel: "setUsingMicrophone", data: { id: number; isUsingMicrophone: boolean }): this;
531     send(channel: "setIsInVoiceCall", data: { id: number; isInVoiceCall: boolean }): this;
532     send(channel: "loadCreatorTheme", theme: Themes.Theme): this;
533     send(channel: "loadCurrentTheme", theme: Themes.Theme): this;
534     send(channel: "loadCreatorThemes", themes: Themes.Theme[]): this;
535     send(channel: "syncThemesStart", theme: Themes.Theme): this;
536     send(channel: "syncThemesEnd", theme: Themes.Theme): this;
537     send(channel: "isMainMenuOpen", isOpen: boolean): this;
538     send(channel: "communityTabWasClose", isOpen: boolean): this;
539     send(channel: "loading", tabId: number, loading: boolean): this;
540     send(channel: "loadSettings", settings: Types.SettingsInterface): this;
541     send(channel: "getThemeCreatorPalette", palette: Themes.Palette): this;
542     send(channel: "changeZoomFactor", zoom: number): this;
543     send(channel: "handleSetFullScreen", fullscreen: boolean): this;
544     send(channel: "openCommunity"): this;
546     destroy(): void;
547   }
549   interface RequestHeaders {
550     [name: string]: string;
551   }