import { ipcRenderer } from 'electron' export function rendererSend(name: string): void export function rendererSend(name: string, params: T): void export function rendererSend(name: string, params?: T): void { ipcRenderer.send(name, params) } export function rendererSendSync(name: string): void export function rendererSendSync(name: string, params: T): void export function rendererSendSync(name: string, params?: T): void { ipcRenderer.sendSync(name, params) } export async function rendererInvoke(name: string): Promise export async function rendererInvoke(name: string): Promise export async function rendererInvoke(name: string, params: T): Promise export async function rendererInvoke(name: string, params: T): Promise export async function rendererInvoke (name: string, params?: T): Promise { return ipcRenderer.invoke(name, params) } export function rendererOn(name: string, listener: LX.IpcRendererEventListener): void export function rendererOn(name: string, listener: LX.IpcRendererEventListenerParams): void export function rendererOn(name: string, listener: LX.IpcRendererEventListenerParams): void { ipcRenderer.on(name, (event, params) => { listener({ event, params }) }) } export function rendererOnce(name: string, listener: LX.IpcRendererEventListener): void export function rendererOnce(name: string, listener: LX.IpcRendererEventListenerParams): void export function rendererOnce(name: string, listener: LX.IpcRendererEventListenerParams): void { ipcRenderer.once(name, (event, params) => { listener({ event, params }) }) } export const rendererOff = (name: string, listener: (...args: any[]) => any) => { ipcRenderer.removeListener(name, listener) } export const rendererOffAll = (name: string) => { ipcRenderer.removeAllListeners(name) }