import { RPCMiddleware } from "./createRPCMiddleware"; import { ErrorLike } from "./lib/isErrorLike"; export type Procedures = Record< string, // eslint-disable-next-line @typescript-eslint/no-explicit-any | Procedure | Record< string, // eslint-disable-next-line @typescript-eslint/no-explicit-any | Procedure | Record< string, // eslint-disable-next-line @typescript-eslint/no-explicit-any | Procedure | Record< string, // eslint-disable-next-line @typescript-eslint/no-explicit-any | Procedure | Record< string, // eslint-disable-next-line @typescript-eslint/no-explicit-any Procedure > > > > >; // eslint-disable-next-line @typescript-eslint/no-explicit-any export type Procedure = ( ...args: TArgs ) => unknown | Promise; export type ProcedureCallServerArgs = { procedurePath: string[]; procedureArgs: unknown[]; }; export type ProcedureCallServerResponse = | { data?: unknown } | { error: unknown }; export type ExtractProcedures< // eslint-disable-next-line @typescript-eslint/no-explicit-any TRPCMiddleware extends RPCMiddleware, > = TRPCMiddleware extends RPCMiddleware ? TProcedures : never; export type OnErrorEventHandler = ( args: { error: ErrorLike; } & ProcedureCallServerArgs, ) => Promise | void;