/* eslint-disable @typescript-eslint/no-explicit-any */ export type Factory< Deps extends object = any, Args extends Array = any, ReturnType = any > = (deps: Deps) => (...args: Args) => ReturnType export type DependenciesOf = F extends Factory ? Deps : never export type FactoryResultOf = F extends Factory< any, infer Args, infer ReturnType > ? (...args: Args) => ReturnType : never