import type { PostAnalyzeResult } from './analyze.js';
export type AiAnalysisChoice = 'capgo_ai' | 'local_ai' | 'skip' | 'auto_upload' | 'retry';
export type AiAnalysisTriggeredBy = 'menu' | 'ci_flag' | 'onboarding';
export type AiAnalysisResult = 'success' | 'already_analyzed' | 'too_big' | 'error' | 'mid_stream_error' | 'upgrade_required';
export declare function aiAnalysisResultFromPostAnalyze(result: PostAnalyzeResult): AiAnalysisResult;
export interface TrackAiAnalysisChoiceInput {
    apikey: string;
    orgId: string;
    appId: string;
    platform: 'ios' | 'android';
    jobId: string;
    choice: AiAnalysisChoice;
    triggeredBy: AiAnalysisTriggeredBy;
}
export interface TrackAiAnalysisResultInput {
    apikey: string;
    orgId: string;
    appId: string;
    platform: 'ios' | 'android';
    jobId: string;
    result: AiAnalysisResult;
    errorStatus?: number;
}
/**
 * Emit `CLI AI Build Analysis Choice` for every branch the user (or CI flag) selected.
 *
 * Privacy boundary: only closed-enum choice + triggered_by metadata is sent. The
 * AI diagnosis text is never observed at this stage.
 */
export declare function trackAiAnalysisChoice(input: TrackAiAnalysisChoiceInput): Promise<void>;
/**
 * Emit `CLI AI Build Analysis Result` only for paths that actually hit the server
 * (capgo_ai or auto_upload).
 *
 * Privacy boundary: the AI analysis text (`result.analysis` in PostAnalyzeResult)
 * MUST NEVER appear in any tag here. Only the closed-enum `result` and optional
 * `error_status` cross the boundary.
 */
export declare function trackAiAnalysisResult(input: TrackAiAnalysisResultInput): Promise<void>;
