type RpcAuthPolicy = 'public' | 'required'; interface RpcParameterManifest { name: string; type: string; optional: boolean; } interface RpcMethodManifest { name: string; handlerName: string; requireAuth: boolean; parameters: RpcParameterManifest[]; returnType: string; } interface RpcServiceManifest { name: string; className: string; importPath: string; requireAuth: boolean; methods: RpcMethodManifest[]; } interface RpcManifest { schemaVersion: 1; services: RpcServiceManifest[]; } interface RpcInvocationRequest { args: unknown[]; } interface RpcInvocationResponse { data: T; } export type { RpcAuthPolicy, RpcInvocationRequest, RpcInvocationResponse, RpcManifest, RpcMethodManifest, RpcParameterManifest, RpcServiceManifest };