narraleaf
Version:
Create your visual novel with Electron and React
21 lines (20 loc) • 1.85 kB
TypeScript
import { IPC, IPCType, OnlyMessage, OnlyRequest } from "../../../core/ipc/ipc";
import { IpcEvents, RequestStatus } from "../../../core/ipc/events";
import { AppEventToken } from "../../../main/electron/app/app";
import { AppWindow } from "../../../main/electron/app/appWindow";
export declare class IPCHost extends IPC<IpcEvents, IPCType.Host> {
private static handling;
private static events;
static handle<K extends keyof OnlyRequest<IpcEvents, IPCType.Host>>(namespace: string, win: AppWindow, listener: (data: IpcEvents[K]["data"], resolve: (response: Exclude<IpcEvents[K]["response"], never>) => void) => Promise<void>): AppEventToken;
static off<K extends keyof OnlyMessage<IpcEvents, IPCType.Host>>(namespace: string, listener: (data: IpcEvents[K]["data"]) => void): void;
static emitHandler<K extends keyof OnlyRequest<IpcEvents, IPCType.Host>>(win: AppWindow, namespace: string, data: IpcEvents[K]["data"]): Promise<IpcEvents[K]["response"]>;
constructor(namespace: string);
invoke<K extends keyof OnlyRequest<IpcEvents, IPCType.Host>>(win: AppWindow, key: K, data: IpcEvents[K]["data"]): Promise<Exclude<IpcEvents[K]["response"], never>>;
send<K extends keyof OnlyMessage<IpcEvents, IPCType.Host>>(win: AppWindow, key: K, data: IpcEvents[K]["data"]): void;
onMessage<K extends keyof OnlyMessage<IpcEvents, IPCType.Host>>(win: AppWindow, key: K, listener: (data: IpcEvents[K]["data"]) => void): AppEventToken;
onRequest<K extends keyof OnlyRequest<IpcEvents, IPCType.Host>>(win: AppWindow, key: K, listener: (data: IpcEvents[K]["data"]) => Promise<Exclude<IpcEvents[K]["response"], never>>): AppEventToken;
failed<T>(err: unknown): RequestStatus<T>;
success<T>(data: T): RequestStatus<T>;
success(): RequestStatus<void>;
tryUse<T>(exec: () => T | Promise<T>): Promise<RequestStatus<T>>;
}