import { UsecaseSymbol } from '../../symbol/classes/usecase-symbol.class'; import { USECASE_TYPE } from '../../utils/constants/symbol-tag.constant'; import { BOUNDARY_KEY, GOAL_KEY, HANDLER_KEY, ROLES_KEY, TITLE_KEY } from '../../utils/constants/symbol-keys.constant'; import type { UsecaseModel } from '../types/usecase-model.interface'; import type { AnyGoal } from '../../goal/types/utility.type'; import type { GoalBoundary } from '../../goal/types/goal-boundary.type'; import type { AnyRole } from '../../actor/types/utility.type'; import type { UsecaseTitleFrom } from '../types/usecase-title-from.type'; import type { AnyFunction } from '../../utils/types/utility.type'; import { MOCK_HANDLER_KEY } from '../../utils/constants/symbol-keys.constant'; import type { UsecaseEventMap } from '../types/usecase-event-map.type'; /** * Represents a use case that maps roles, a goal, * and a handler into an executable action */ export declare class Usecase extends UsecaseSymbol<typeof USECASE_TYPE, UsecaseTitleFrom<Title, Roles, Goal>, UsecaseEventMap> implements UsecaseModel<Title, Roles, Handler, Goal> { get [TITLE_KEY](): Title; get [ROLES_KEY](): Roles; get [GOAL_KEY](): Goal; get [HANDLER_KEY](): Handler; get [MOCK_HANDLER_KEY](): Handler | null; set [MOCK_HANDLER_KEY](handler: Handler | null); get [BOUNDARY_KEY](): GoalBoundary<Goal>; constructor(title: Title, roles: Roles, goal: Goal, handler: Handler); /** Returns the use case's display name */ toString(): string; }