import type { AnyRole } from '../../actor/types/utility.type'; import type { AnyGoal } from '../../goal/types/utility.type'; import type { AnyType } from '../../utils/types/utility.type'; import type { UsecaseModel } from './usecase-model.interface'; import type { AnyUsecase } from './utility.type'; export type UsecaseHandler = Usecase extends UsecaseModel ? Handler : never; export type UsecaseHandlerParameters = UsecaseHandler extends (...args: infer Parameters) => AnyType ? Parameters : []; export type UsecaseHandlerResult = ReturnType>;