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); }