import type { Abi, FunctionAbi } from './abi' type ExtractFunctions = T extends { type: 'function' } ? T : T extends { type: 'interface'; items: infer Items } ? Items extends FunctionAbi[] ? Items[number] : never : never export type ContractFunctions = { [K in ExtractFunctions as K['name']]: K }