export declare const KEYS: { readonly INJECTED_PROPS: "injected:props"; readonly INJECT: "inject"; readonly SELF: "self"; readonly SKIP_SELF: "skipSelf"; readonly OPTIONAL: "optional"; readonly POST_CONSTRUCT: "postConstruct"; readonly PRE_DESTROY: "preDestroy"; }; export declare const STATUS: { readonly DEFAULT: "default"; readonly INITING: "initing"; readonly ACTIVATED: "activated"; }; export declare const BINDING: { readonly INVALID: "Invalid"; readonly INSTANCE: "Instance"; readonly CONSTANT: "ConstantValue"; readonly DYNAMIC: "DynamicValue"; }; /** * 错误消息模板 * * 这些消息用于装饰器和 token 模块中的运行时错误检测, * 与 errors/ 目录下的错误类无关(错误类有自己的消息前缀)。 */ export declare const ERRORS: { readonly POST_CONSTRUCT: "Multiple @PostConstruct decorators are not allowed in a single class."; readonly PRE_DESTROY: "Multiple @PreDestroy decorators are not allowed in a single class."; readonly INVALID_TOKEN: "@Inject requires a valid token, but received null or undefined."; readonly LAZY_INJECT_INVALID_TOKEN: "@LazyInject requires a valid token, but received null or undefined."; readonly DECORATE_NOT_SUPPORT_INITIALIZER: "decorate does not support decorators that rely on context.addInitializer (e.g. @LazyInject)."; }; export declare const UNINITIALIZED: unique symbol; export type BindingType = (typeof BINDING)[keyof typeof BINDING]; export type StatusType = (typeof STATUS)[keyof typeof STATUS]; /** * Object.hasOwn 的兼容性替代函数 * Object.hasOwn 在部分旧版浏览器和运行时中不可用(ES2022+), * 此函数使用 Object.prototype.hasOwnProperty.call 实现相同语义。 */ export declare function hasOwn(obj: object, key: PropertyKey): boolean; export declare function isObject(val: unknown): val is object;