import type { EventDriven } from '../../event/types/event-driven.interface'; import type { AnyEventMap, DefaultEventMap } from '../../event/types/event-map.type'; import type { ID_KEY, NAME_KEY, TYPE_KEY } from '../../utils/constants/symbol-keys.constant'; import type { UsecaseSymbolId } from './utility.type'; export interface UsecaseSymbolModel extends EventDriven { readonly [TYPE_KEY]: Type; readonly [NAME_KEY]: Name; readonly [ID_KEY]: UsecaseSymbolId; toJSON(): { type: Type; name: Name; }; } export type UsecaseSymbolLike = UsecaseSymbolModel;