/**
 * @module DefaultListableBeanFactory
 * @description Ioc 容器
 */
import BeanDefinition from './BeanDefinition';
import AbstractBeanFactory from './AbstractBeanFactory';
export declare const methodBeanNameSymbol: unique symbol;
export default class DefaultListableBeanFactory extends AbstractBeanFactory {
    /**
     * 已注册bean定义字典
     */
    private readonly beanDefinitions;
    private readonly registerdBeanType;
    private allowBeanDefinitionOverridable;
    containsBeanDefinition(beanName: string): boolean;
    /**
     * 根据bean名称获取对应的定义
     * @param beanName bean类型
     */
    getBeanDefinition(beanName: string): BeanDefinition;
    /**
     * 注册一个bean定义
     * @param beanName bean名称
     * @param beanDefinition bean定义
     */
    registerBeanDefinition(beanName: string, beanDefinition: BeanDefinition): void;
    /**
     * 注册组件的Bean注解定义
     * @param clazz
     */
    private registerComponentBeanAnnotations;
    isBeanDefinitionOverridable(beanName: string): boolean;
    setAllowBeanDefinitionOverridable(value: boolean): void;
    /**
     * 移除一个bean定义
     * @param beanName
     */
    removeBeanDefinition(beanName: string): BeanDefinition;
    /**
     * 获取所有已注册的bean定义key
     * @returns
     */
    getBeanDefinitionNames(): IterableIterator<string>;
    destory(): void;
}
