import type { MetricsSnapshot, AlertItem, ObservabilityReport, CostBudget, CostAlert } from "../../types/index.js";
import type { MetricSample } from "../contracts/extension_platform_contracts.js";
/**
 * 采集任务目录下的所有 TaskContext，计算聚合指标。
 * 包括通过率、重试率、平均耗时和知识匹配率。
 * @param stateDir - 任务状态文件目录路径
 * @returns 指标快照，包含通过率、重试率、平均耗时、知识匹配率
 */
export declare function collectMetrics(stateDir: string): Promise<MetricsSnapshot>;
/**
 * 基于阈值检测指标异常，生成告警列表。
 * 告警规则：
 *   - 失败率 >= 30% → critical
 *   - 失败率 >= 15% → warning
 *   - 重试率 > 40% → warning
 *   - 平均耗时 > 5 分钟 → warning
 *   - 知识匹配率 < 50% → warning
 * @param snapshot - 采集到的指标快照
 * @returns 告警条目列表（按检测顺序排列）
 */
export declare function checkAlerts(snapshot: MetricsSnapshot): AlertItem[];
/**
 * 从真实 TaskContext 状态目录生成交付指标治理样本。
 * @description 该函数用于 sf_deliver 主链路，把 observability 聚合指标转换为
 *              metric_governance.evaluateMetrics 可消费的 MetricSample。
 *              样本来自 .soloforge/state 中的真实 TaskContext，不允许调用方传空数组冒充通过。
 *              历史样本不足时只输出"数据源可用"样本，避免把缺少历史数据伪装成业务指标通过。
 * @param stateDir - TaskContext 状态目录
 * @param minCompletedTasks - 启用质量指标门控所需的最小已完成任务数
 */
export declare function collectDeliveryMetricSamples(stateDir: string, minCompletedTasks?: number): Promise<MetricSample[]>;
/**
 * 生成指定周期内的完整可观测性报告。
 * 包含聚合指标、告警、每日趋势数据和中文摘要。
 * @param stateDir - 任务状态文件目录路径
 * @param periodDays - 报告回溯天数，默认 30 天
 * @returns 可观测性报告，包含时间范围、指标快照、告警、趋势和摘要
 */
export declare function generateReport(stateDir: string, periodDays?: number): Promise<ObservabilityReport>;
/**
 * 根据任务数量和类型粗略估算 Token 消耗。
 * @param stateDir - 任务状态文件目录路径
 * @returns 包含总估算 Token 数和按任务类型分组的估算明细
 */
export declare function estimateCost(stateDir: string): Promise<{
    total_estimated_tokens: number;
    by_task_type: Record<string, number>;
}>;
/**
 * 检查 Token 用量是否超出预算，生成超支或接近预算（>=80%）的告警。
 * 分别检查日、周、月三个维度的预算。
 * @param stateDir - 任务状态文件目录路径
 * @param budget - 成本预算配置（含日/周/月 Token 限额）
 * @returns 成本告警列表
 */
export declare function checkCostBudget(stateDir: string, budget: CostBudget): Promise<CostAlert[]>;
/**
 * 获取最近指定天数的每日 Token 用量趋势。
 * 缺失的日期填充为 0，确保时间线连续。
 * @param stateDir - 任务状态文件目录路径
 * @param days - 回溯天数，默认 30 天
 * @returns 按日期排列的每日 Token 消耗估算数组
 */
export declare function getCostTrend(stateDir: string, days?: number): Promise<Array<{
    date: string;
    estimated_tokens: number;
}>>;
//# sourceMappingURL=observability.d.ts.map