type InferProcedure = T extends { resolve: (arg: { context: any; input: infer I; }) => Promise; } ? { input: I; output: O; } : never; export type RpcReactClientProxy = { [K in keyof T]: T[K] extends { resolve: any; } ? { useQuery: (input: InferProcedure['input']) => { queryKey: any[]; queryFn: () => Promise['output']>; }; useMutation: () => { mutate: (input: InferProcedure['input']) => Promise['output']>; }; } : RpcReactClientProxy; }; export declare function rpcReactClient(client: Record): RpcReactClientProxy; export {};