import { Container } from '@artus/injection'; import { HookFunction } from './lifecycle'; import { Manifest } from './loader'; import Trigger from './trigger'; export interface ApplicationLifecycle { configWillLoad?: HookFunction; configDidLoad?: HookFunction; didLoad?: HookFunction; willReady?: HookFunction; didReady?: HookFunction; beforeClose?: HookFunction; } export interface ApplicationInitOptions { containerName?: string; envUnits?: string[]; } export interface Application { manifest?: Manifest; config?: Record; get trigger(): Trigger; load(manifest: Manifest): Promise; run(): Promise; registerHook(hookName: string, hookFn: HookFunction): void; getContainer(): Container; } export * from './loader/types';