/// <reference types="node" />
import { EventEmitter } from 'events';
import { MonitorResult, MonitorConfig, MonitorSubscription } from '../types';
import { PlatformAdapter } from '../types/platform';
import { CacheManager } from './cache-manager';
import { MonitorError } from '../types/errors';
/**
 * 基础监控器抽象类
 *
 * 提供所有监控器的通用功能，包括缓存、事件、配置管理等
 */
export declare abstract class BaseMonitor<T> extends EventEmitter {
    protected config: MonitorConfig;
    protected adapter: PlatformAdapter;
    protected cache: CacheManager;
    protected subscriptions: Set<MonitorSubscription>;
    /** 已输出过降级警告的 key 集合（进程级别去重） */
    private static readonly warnedDegradations;
    /**
     * 输出首次降级警告（相同 key 仅警告一次）
     * 供适配器和监控器在命令执行失败并降级时调用
     * @param key 降级标识，格式 "{monitor}.{type}"，如 "cpu.command_failed"
     * @param reason 人类可读的降级原因
     */
    static warnDegradation(key: string, reason: string): void;
    constructor(adapter: PlatformAdapter, config?: MonitorConfig, cache?: CacheManager);
    /**
     * 获取监控信息
     */
    abstract info(): Promise<MonitorResult<T>>;
    /**
     * 获取默认配置
     */
    protected abstract getDefaultConfig(): MonitorConfig;
    /**
     * 配置监控器
     */
    withConfig(config: Partial<MonitorConfig>): this;
    /**
     * 配置缓存
     */
    withCaching(enabled: boolean, ttl?: number): this;
    /**
     * 实时监控
     */
    monitor(interval: number, callback: (data: T) => void): MonitorSubscription;
    /**
     * 获取配置
     */
    getConfig(): MonitorConfig;
    /**
     * 获取缓存统计
     */
    getCacheStats(): import("./cache-manager").CacheStats | null;
    /**
     * 清空缓存
     */
    clearCache(): void;
    /**
     * 停止所有监控订阅
     */
    stopAllMonitoring(): void;
    /**
     * 获取活跃订阅数量
     */
    getActiveSubscriptions(): number;
    /**
     * 销毁监控器
     */
    destroy(): void;
    /**
     * 获取缓存结果
     */
    protected getCachedResult<R>(key: string): R | undefined;
    /**
     * 设置缓存结果
     */
    protected setCachedResult<R>(key: string, result: R, ttl?: number): void;
    /**
     * 创建成功结果
     */
    protected createSuccessResult<R>(data: R, cached?: boolean): MonitorResult<R>;
    /**
     * 创建失败结果
     */
    protected createErrorResult<R>(error: MonitorError): MonitorResult<R>;
    /**
     * 处理错误并转换为 MonitorResult
     */
    protected handleError<R>(error: any): MonitorResult<R>;
    /**
     * 执行带缓存的操作
     */
    protected executeWithCache<R>(cacheKey: string, operation: () => Promise<R>, ttl?: number): Promise<MonitorResult<R>>;
    /**
     * 验证平台支持
     */
    protected validatePlatformSupport(feature: string): void;
    /**
     * 创建不支持功能的错误
     */
    protected createUnsupportedError(feature: string): MonitorError;
    /**
     * 安全执行异步操作
     */
    protected safeExecute<R>(operation: () => Promise<R>, fallback?: R): Promise<R>;
    /**
     * 创建超时 Promise
     */
    protected createTimeoutPromise<R>(timeoutMs: number, errorMessage?: string): Promise<R>;
    /**
     * 带超时执行操作
     */
    protected executeWithTimeout<R>(operation: () => Promise<R>, timeoutMs?: number): Promise<R>;
}
//# sourceMappingURL=base-monitor.d.ts.map