import { Constructable, Container } from '@artus/injection'; import { Application } from '../types'; export declare type HookFunction = (hookProps: { app: Application; lifecycleManager: LifecycleManager; payload?: T; }) => void | Promise; export declare class LifecycleManager { hookList: string[]; hookFnMap: Map; private app; private container; constructor(app: Application, container: Container); insertHook(existHookName: string, newHookName: string): void; appendHook(newHookName: string): void; registerHook(hookName: string, hookFn: HookFunction): void; registerExtension(extClazz: Constructable): void; emitHook(hookName: string, payload?: T): Promise; }