/**
 * SmartPerfetto Frame Agent
 *
 * Phase 2.2: AI Agent for frame and scrolling performance analysis
 *
 * This agent specializes in:
 * - Detecting jank frames
 * - Analyzing scrolling performance
 * - Frame production/consumption timing
 * - Present fence analysis
 *
 * Skills wrapped as tools:
 * - jank_frame_detail (comprehensive per-frame analysis)
 * - scrolling_analysis
 * - consumer_jank_detection
 * - sf_frame_consumption
 * - app_frame_production
 * - present_fence_timing
 */
import { BaseAgent, TaskUnderstanding, ExecutionResult } from '../base/baseAgent';
import { AgentTask, AgentTaskContext, Hypothesis } from '../../types/agentProtocol';
import { Finding } from '../../types';
import { ModelRouter } from '../../core/modelRouter';
import { SkillExecutionResult } from '../../../services/skillEngine';
/**
 * Frame Agent - AI agent for frame and scrolling analysis
 */
export declare class FrameAgent extends BaseAgent {
    constructor(modelRouter: ModelRouter);
    /**
     * Frame agent extracts additional findings from raw results beyond diagnostics,
     * including jank summaries, consumer jank, and jank frame lists.
     *
     * Key design: Merge jank statistics from multiple sources into a single Finding
     * to avoid duplicate/conflicting reports (e.g., "13 frames" vs "39 frames" vs "25 frames").
     *
     * Priority order for data source selection (default for user-facing jank analysis):
     * 1. Scrolling skill frame list (get_app_jank_frames/app_jank_frames) - concrete per-frame data
     * 2. Scrolling skill summary (performance_summary) - same detection logic aggregate
     * 3. Consumer-side detection (consumerSummary) - supplemental perspective (SF/HWC layer)
     *
     * IMPORTANT trade-off notes for Android performance experts:
     * - 默认以 scrolling_analysis 定义的“真实掉帧”作为主口径，避免跨技能口径混淆
     * - consumer_jank_detection 保留为补充证据，用于定位 SF/HWC/GPU 层问题
     * - All sources are preserved in evidence[] for expert review
     */
    protected extractFindingsFromResult(result: SkillExecutionResult, skillId: string, category: string): Finding[];
    protected buildUnderstandingPrompt(task: AgentTask): string;
    protected buildPlanningPrompt(understanding: TaskUnderstanding, task: AgentTask): string;
    protected buildReflectionPrompt(result: ExecutionResult, task: AgentTask): string;
    protected generateHypotheses(findings: Finding[], task: AgentTask): Promise<Hypothesis[]>;
    protected getRecommendedTools(context: AgentTaskContext): string[];
}
/**
 * Factory function to create FrameAgent
 */
export declare function createFrameAgent(modelRouter: ModelRouter): FrameAgent;
export default FrameAgent;
//# sourceMappingURL=frameAgent.d.ts.map