/**
 * Direct Drill-Down Executor
 *
 * A specialized executor for handling explicit drill-down follow-up queries.
 * Bypasses the strategy pipeline entirely and directly invokes the appropriate
 * skill based on the follow-up resolution.
 *
 * Use cases:
 * - "分析帧 1436069" → directly runs jank_frame_detail for that frame
 * - "分析会话 3" → directly runs scrolling_analysis for that session
 *
 * Benefits:
 * - Zero LLM overhead for explicit drill-down requests
 * - Avoids re-executing global discovery stages
 * - Handles intervals that need timestamp enrichment via lightweight queries
 */
import { AnalysisExecutor } from './analysisExecutor';
import { AnalysisServices, ExecutionContext, ExecutorResult, ProgressEmitter } from '../orchestratorTypes';
import { FollowUpResolution } from '../followUpHandler';
export declare class DirectDrillDownExecutor implements AnalysisExecutor {
    private followUp;
    private services;
    constructor(followUp: FollowUpResolution, services: AnalysisServices);
    execute(ctx: ExecutionContext, emitter: ProgressEmitter): Promise<ExecutorResult>;
    /**
     * Enrich intervals that have needsEnrichment flag by querying for timestamps.
     */
    private enrichIntervalsIfNeeded;
    private queryFirstRow;
    private tryResolveFrameIntervalWithFallbacks;
    private buildLegacyFrameEnrichmentQuery;
    private buildDoFrameAliasEnrichmentQuery;
    private toRowObject;
    private normalizeLooseNumericId;
    private executeTraceQuery;
    private refreshDrillDownJankContext;
    private collectFrameMechanismRecords;
    private normalizeFrameMechanismRecord;
    private dedupeFrameMechanismRecords;
    /**
     * Determine drill-down skill plan based on:
     * 1) resolved entity target (frame/session/startup)
     * 2) user follow-up focus (default/cpu/cpu_frequency)
     */
    private determineSkillPlan;
    /**
     * Resolve drill-down target entity type from follow-up params/interval metadata.
     */
    private determineTargetEntityType;
    /**
     * Detect follow-up focus from query/aspects to avoid repeatedly answering
     * frame-level generic root cause when user asks a CPU/CpuFreq sub-question.
     */
    private detectDrillDownFocus;
}
//# sourceMappingURL=directDrillDownExecutor.d.ts.map