import type { AgBaseBean } from './agBaseBean'; export type AgEventHandlers = { [K in TEventKey]?: (event?: TEvent) => void; }; export interface IContext { createBean>(bean: T, afterPreCreateCallback?: (bean: AgBaseBean) => void): T; getBean(name: T): TBeanCollection[T]; getBeans(): TBeanCollection; destroyBean(bean: AgBaseBean | null | undefined): undefined; destroyBeans>(beans: (T | null | undefined)[]): T[]; getId(): string; destroy(): void; isDestroyed(): boolean; readonly instanceId: number; } export type ClassImp = new (...args: []) => object;