import * as tb from "../base"; import { ProtocolBase } from "./Protocol"; type Implementation = { [MethodName in keyof Protocol["methods"]]: ( ...args: tb.BicoderTargets ) => Promise< tb.TypeOf >; }; type Foo = Implementation<{ type: "protocol"; methods: { greet: { type: "method"; args: [tb.Bicoder]; result: tb.Bicoder; }; }; }>; export default Implementation;