import type { WrpcRoomCommand } from "./wrpcRoomCommand"; import type { Maybe, Shape } from "./wrpcSchema"; export type ExtractCommandNames>> = Commands extends Record ? keyof Commands : never; export type ExtractCommandInput< Commands extends Maybe>, Name extends ExtractCommandNames, Fallback = unknown, > = Commands extends Record ? Commands[Name] extends WrpcRoomCommand ? Input extends Shape ? Input : Fallback : Fallback : Fallback; export type ExtractCommandOutput< Commands extends Maybe>, Name extends ExtractCommandNames, Fallback = unknown, > = Commands extends Record ? Commands[Name] extends WrpcRoomCommand ? Output extends Shape ? Output : Fallback : Fallback : Fallback;