import { TRPCRouter, TRPCEndpoint } from './internal'; import { tsutil } from './tsutil'; import { TRPCPayload } from './router'; export declare type ClientSDKHandler = (url: string, payload: { path: string[]; args: unknown[]; context: unknown; }) => Promise; export declare type ToClientSDKParams = { url: string; getContext: () => Ctx; handler?: ClientSDKHandler; }; export declare type TRPCRequest = { run: () => Promise; payload: TRPCPayload; }; declare type EndpointToSDK, Ctx> = T['_func'] extends (ctx: any) => (...args: infer U) => any ? (...args: U) => { run: () => tsutil.promisify>>; payload: TRPCPayload; } : never; declare type RouterToSDK, Ctx> = tsutil.format<{ [k in keyof T['_def']['children']]: T['_def']['children'][k] extends TRPCRouter ? RouterToSDK : never; } & { [k in keyof T['_def']['endpoints']]: EndpointToSDK; }>; export declare const makeSDK: , Ctx = unknown>(params: ToClientSDKParams) => RouterToSDK; export {};