import { DispatchedPayload } from "./Dispatcher"; /** * ```js * const useCase = (context) => { * return () => { * // execute * } * } * ``` */ export declare type UseCaseFunction = (context: FunctionalUseCaseContext) => (...args: Array) => any; /** * Is `v` is UseCaseFunction? */ export declare const isUseCaseFunction: (v: any) => v is UseCaseFunction; /** * Send only dispatcher */ export interface DispatcherSender { dispatch(payload: DispatchedPayload): void; } /** * FunctionalUseCaseContext is a Context object of Functional UseCase */ export interface FunctionalUseCaseContext { dispatcher: DispatcherSender; }