import { IPC, IPCType, OnlyMessage, OnlyRequest } from "../../../../shared/types/ipc"; import { IPCEvents, RequestStatus } from "../../../../shared/types/ipcEvents"; import { AppEventToken } from "../../types"; export interface IPCWindow { getWebContents(): Electron.WebContents; } export declare class IPCHost extends IPC { private static handling; private static events; static handle>(namespace: string, win: IPCWindow, listener: (data: IPCEvents[K]["data"], resolve: (response: Exclude) => void) => Promise): AppEventToken; static off>(namespace: string, listener: (data: IPCEvents[K]["data"]) => void): void; static emitHandler>(win: IPCWindow, namespace: string, data: IPCEvents[K]["data"]): Promise; constructor(namespace: string); invoke>(win: IPCWindow, key: K, data: IPCEvents[K]["data"]): Promise>; send>(win: IPCWindow, key: K, data: IPCEvents[K]["data"]): void; onMessage>(win: IPCWindow, key: K, listener: (data: IPCEvents[K]["data"]) => void): AppEventToken; onRequest>(win: IPCWindow, key: K, listener: (data: IPCEvents[K]["data"]) => Promise>>): AppEventToken; failed(err: unknown): RequestStatus; success(data: T): RequestStatus; success(): RequestStatus; tryUse(exec: () => T | Promise): Promise>; }