/** * 生命周期管理 * 提供资源管理和优雅关闭机制 */ import { EventEmitter } from "node:events"; import type { Dispose } from "./types.js"; export interface LifecycleHook { /** 初始化钩子 */ onInit?(): void | Promise; /** 启动钩子 */ onStart?(): void | Promise; /** 停止钩子 */ onStop?(): void | Promise; /** 清理钩子 */ onCleanup?(): void | Promise; } export interface LifecycleCleanupOptions { /** 完成全部清理后传播钩子、资源与事件监听器错误。 */ throwOnFailure?: boolean; } /** * 生命周期管理器 */ export declare class LifecycleManager extends EventEmitter { private resources; private hooks; private isShuttingDown; private shutdownTimeout; /** * 注册资源 */ register(name: string, dispose: Dispose): void; /** * 注销资源 */ unregister(name: string): boolean; /** * 注册生命周期钩子 */ addHook(hook: LifecycleHook): void; /** * 移除生命周期钩子 */ removeHook(hook: LifecycleHook): void; /** * 初始化所有钩子 */ init(): Promise; /** * 启动所有钩子 */ start(signal?: AbortSignal): Promise; /** * 停止所有钩子 */ stop(): Promise; /** * 清理所有资源 * 默认保持尽力清理兼容行为;宿主停机应启用 throwOnFailure 以获得可验证结果。 */ cleanup(options?: LifecycleCleanupOptions): Promise; /** * 优雅关闭 */ gracefulShutdown(signal?: string, options?: { exitOnTimeout?: boolean; }): Promise; /** * 设置关闭超时时间 */ setShutdownTimeout(timeout: number): void; /** * 获取资源数量 */ getResourceCount(): number; /** * 获取所有资源名称 */ getResourceNames(): string[]; }