import type * as ts from 'typescript'; import { ClassPropertyWithArrowFunctionInitializer, ClassPropertyWithCallExpressionInitializer, ClassPropertyWithExpressionInitializer } from '../ts/types'; import { BeanKind } from './BeanKind'; import { Configuration } from '../configuration/Configuration'; import { Dependency } from '../dependency/Dependency'; import { Entity } from '../Entity'; import { DisposableNodeHolder } from '../DisposableNodeHolder'; import { CType } from '../type-system/CType'; import { LifecycleKind } from '../../runtime-metadata/LifecycleKind'; export type BeanNode = ts.MethodDeclaration | ClassPropertyWithCallExpressionInitializer | ClassPropertyWithArrowFunctionInitializer | ts.PropertyDeclaration | ClassPropertyWithExpressionInitializer | ts.GetAccessorDeclaration; export declare class Bean extends Entity { id: string; parentConfiguration: Configuration; classMemberName: string; qualifier: string | null; private _cType; kind: BeanKind; lifecycle: LifecycleKind[]; external: boolean | null; primary: boolean; dependencies: Set; embeddedParent: Bean | null; nestedProperty: string | null; scopeExpression: DisposableNodeHolder; lazyExpression: DisposableNodeHolder; constructSignatureFileNames: Set; constructor(values?: Partial); registerDependency(dependency: Dependency): void; get cType(): CType; getExternalValue(): boolean; registerType(cType: CType): void; get fullName(): string; isLifecycle(): boolean; }