import type { ClaudeAnalysisContext, SelectionContext } from './types';
import type { ArchitectureInfo } from '../agent/detectors/types';
import type { DetectedFocusApp } from './focusAppDetector';
import { type OutputLanguage } from './outputLanguage';
/**
 * Build a system prompt section describing the user's current Perfetto UI selection.
 * This guides Claude to scope SQL queries and analysis to the selected region.
 */
export declare function buildSelectionContextSection(sel: SelectionContext): string;
/**
 * Tier classification for cache-aware prompt assembly:
 *   1 — STATIC: never changes within process lifetime (role, output format)
 *   2 — PER-TRACE: stable for the lifetime of one trace (architecture,
 *       focus apps, completeness, knowledge base reference)
 *   3 — PER-QUERY: stable while the same scene is analysed (methodology,
 *       sub-agent guidance)
 *   4 — PER-INTERACTION: dynamic, changes every query (selection,
 *       comparison, conversation context, history, plan history)
 */
export type PromptTier = 1 | 2 | 3 | 4;
export interface PromptSegment {
    tier: PromptTier;
    /** Stable identifier for tests + logging (e.g. "role", "architecture"). */
    label: string;
    content: string;
    /** Whether the section may be dropped under token pressure. */
    droppable: boolean;
}
export interface SystemPromptParts {
    /** Joined Tier 1+2+3 — the cache-friendly prefix. */
    stablePrefix: string;
    /** Joined Tier 4 — varies every query. */
    volatileSuffix: string;
    /** Final string (`stablePrefix + '\n\n' + volatileSuffix` when both non-empty). */
    fullPrompt: string;
    /** Section-level breakdown after budget enforcement. */
    segments: PromptSegment[];
    /** Labels of sections dropped to fit the token budget. */
    droppedLabels: string[];
}
/**
 * Build the assembled prompt + structured segment metadata.
 * `buildSystemPrompt()` is now a thin wrapper around this.
 */
export declare function buildSystemPromptParts(context: ClaudeAnalysisContext, maxTokens?: number): SystemPromptParts;
/**
 * Build the assembled system prompt string. Thin wrapper around
 * {@link buildSystemPromptParts} that returns just the joined prompt —
 * 100% byte-compatible with the pre-Phase-1.2 implementation.
 */
export declare function buildSystemPrompt(context: ClaudeAnalysisContext, maxTokens?: number): string;
/**
 * Build a minimal system prompt for quick (factual) queries.
 * Loads the prompt-quick template and injects architecture + focus app context.
 * Target: ~1500 tokens — much smaller than the full 4500-token prompt.
 */
export declare function buildQuickSystemPrompt(opts: {
    architecture?: ArchitectureInfo;
    packageName?: string;
    focusApps?: DetectedFocusApp[];
    focusMethod?: 'battery_stats' | 'oom_adj' | 'frame_timeline' | 'none';
    selectionContext?: SelectionContext;
    outputLanguage?: OutputLanguage;
}): string;
//# sourceMappingURL=claudeSystemPrompt.d.ts.map