import type { RpcEventSchema, RpcSchema } from "@yaakapp-internal/proxy-lib"; import { command, subscribe } from "./tauri"; export type Req = RpcSchema[K][0]; export type Res = RpcSchema[K][1]; export async function rpc(cmd: K, payload: Req): Promise> { return command>("rpc", { cmd, payload }); } /** Subscribe to a backend event. Returns an unsubscribe function. */ export function listen( event: K & string, callback: (payload: RpcEventSchema[K]) => void, ): () => void { return subscribe(event, callback); }