GuestInterface<T>: {
    [K in keyof T]: T[K] extends ((...args: any[]) => Vow<infer R>)
        ? ((...args: Parameters<T[K]>) => Promise<R>)
        : T[K] extends HostAsyncFuncWrapper
            ? GuestOf<T[K]>
            : T[K] extends ((...args: any[]) => infer R)
                ? T[K]
                : T[K] extends object
                    ? GuestInterface<T[K]>
                    : T[K]
}

Convert an entire Host interface into what the Guest will receive.

Type Parameters

  • T