import { ProcedureType } from '../'; import { TRPC_ERROR_CODE_NUMBER } from './codes'; /** * Error response */ export interface TRPCErrorShape = Record> { code: TCode; message: string; data: TData; } /** * JSON-RPC 2.0 Specification */ export declare namespace JSONRPC2 { type RequestId = number | string | null; /** * All requests/responses extends this shape */ interface BaseEnvelope { id?: RequestId; jsonrpc?: '2.0'; } interface BaseRequest extends BaseEnvelope { method: TMethod; } interface Request extends BaseRequest { params: TParams; } interface ResultResponse extends BaseEnvelope { result: TResult; } interface ErrorResponse extends BaseEnvelope { error: TError; } } export interface TRPCRequest extends JSONRPC2.Request { } export interface TRPCResult { data: TData; } export interface TRPCSuccessResponse extends JSONRPC2.ResultResponse & { type?: 'data'; }> { } export interface TRPCErrorResponse extends JSONRPC2.ErrorResponse { } export type TRPCResponse = TRPCErrorResponse | TRPCSuccessResponse; export type TRPCRequestMessage = TRPCRequest & { id: JSONRPC2.RequestId; }; /** * The client asked the server to unsubscribe */ export interface TRPCSubscriptionStopNotification extends JSONRPC2.BaseRequest<'subscription.stop'> { id: null; } /** * The client's outgoing request types */ export type TRPCClientOutgoingRequest = TRPCSubscriptionStopNotification; /** * The client's sent messages shape */ export type TRPCClientOutgoingMessage = TRPCRequestMessage | (JSONRPC2.BaseRequest<'subscription.stop'> & { id: JSONRPC2.RequestId; }); export interface TRPCResultMessage extends JSONRPC2.ResultResponse<{ type: 'started'; data?: never; } | { type: 'stopped'; data?: never; } | (TRPCResult & { type: 'data'; })> { } export type TRPCResponseMessage = { id: JSONRPC2.RequestId; } & (TRPCErrorResponse | TRPCResultMessage); /** * The server asked the client to reconnect - useful when restarting/redeploying service */ export interface TRPCReconnectNotification extends JSONRPC2.BaseRequest<'reconnect'> { id: JSONRPC2.RequestId; } /** * The client's incoming request types */ export type TRPCClientIncomingRequest = TRPCReconnectNotification; /** * The client's received messages shape */ export type TRPCClientIncomingMessage = TRPCClientIncomingRequest | TRPCResponseMessage; //# sourceMappingURL=envelopes.d.ts.map