declare enum InjectType { 'prototype' = 0, 'single' = 1 } interface ConstructParamEach { isBean?: boolean; value: any; } declare type ConstructParamProps = [{ [propName: string]: ConstructParamEach; }]; interface ConstructParams { [index: number]: ConstructParamEach | ConstructParamProps; } interface BeanClass { prototype: object; } interface BeanDefinitionConfig { id: string; alias?: string | string[]; beanClass: BeanClass; constructParams?: ConstructParams; type?: keyof typeof InjectType; parent?: string; exposeProxy?: boolean; } export { BeanDefinitionConfig, ConstructParams, ConstructParamEach, ConstructParamProps, }; export default class BeanDefinition { private id; private alias; private beanClass; private constructParams; private type; private parent; private mergedParams; private hasMergedParams; private exposeProxy; constructor({ id, alias, beanClass, constructParams, type, parent, exposeProxy, }: BeanDefinitionConfig); static isValidConfig(mayBeConfig: any): any; getBeanClass(): BeanClass; getExposeProxy(): boolean; getType(): "prototype" | "single"; getAlias(): string[]; getId(): string; isFactoryBean(): boolean; getParentId(): string; validRelativeBeanId(beanMap: Map): void; mergeAutoInjectConstructParams(index: number, beanId: string): any; getMergedParmas(beanMap: Map): ConstructParams; }