import Hook from '../Hook'; import { ControllerHooks } from './types'; export declare class Controller { name: string; hooks: ControllerHooks; count: Record; constructor(name: string, hooks: ControllerHooks); call(hooksName: keyof HooksMap, ...args: any[]): any; callAsync(hooksName: keyof HooksMap, ...args: any[]): any; promise(hooksName: keyof HooksMap, ...args: any[]): Promise; getHook(key: keyof HooksMap): Hook | undefined; getHooksNameMap(): Record; getHookTapName(hook: string): string; tapHook(rawOptions: { once?: boolean; hook: keyof HooksMap; context?: boolean; mode: 'tap' | 'tapAsync' | 'tapPromise'; }, rawFn: (...args: any[]) => any): void; removeTapHook(name: keyof HooksMap, mode: 'tap' | 'tapAsync' | 'tapPromise', fn: (...args: any[]) => any): void; } export declare function createTapableController>(name: string, hooks: ControllerHooks): { /** * This is a map for tapped hooks * */ HooksNameMap: { [K in keyof THooks]: K; }; /** * This useHook is used to tap function for React Hooks * */ useTapable: (rawOptions: { once?: boolean; hook: keyof THooks; context?: boolean; mode: 'tap' | 'tapAsync' | 'tapPromise'; }, rawFn: (...args: any[]) => any, rawUseAliasArr?: any[]) => any; /** * This is a method for call sync function * */ call: (hooksName: keyof THooks, ...args: any[]) => any; /** * This is a method for call async function, and expected callback * */ callAsync: (hooksName: keyof THooks, ...args: any[]) => any; /** * This is a method for call promise function, and return Promise Object * */ promise: (hooksName: keyof THooks, ...args: any[]) => Promise; /** * This function is used to tap function for React Component * */ tapHook: (rawOptions: { once?: boolean; hook: keyof THooks; context?: boolean; mode: 'tap' | 'tapAsync' | 'tapPromise'; }, rawFn: (...args: any[]) => any) => any; /** * This function is used to remove tapped function * */ removeTapHook: (hook: keyof THooks, mode: 'tap' | 'tapAsync' | 'tapPromise', fn: (...args: any[]) => any) => void; };