import type { ArtifactFormat, InstallTarget, RunpaneCommand } from './commands'; import type { PanePlatform } from './platform'; export type WrapperTelemetryEventName = 'runpane_wrapper_download_requested' | 'runpane_wrapper_download_succeeded' | 'runpane_wrapper_download_failed' | 'runpane_wrapper_github_fallback_used' | 'runpane_wrapper_command_failed'; type WrapperInvocation = 'npm' | 'npx' | 'npm_global' | 'pnpm' | 'pnpm_dlx' | 'yarn_dlx' | 'bunx' | 'unknown'; type WrapperFailureStage = 'parse' | 'resolve_release' | 'download' | 'checksum' | 'install' | 'remote_setup' | 'launch' | 'unknown'; export type WrapperFailureCategory = 'network' | 'timeout' | 'not_found' | 'permission' | 'checksum' | 'unsupported_platform' | 'validation' | 'process_exit' | 'unknown'; export interface WrapperTelemetryContext { command: RunpaneCommand | 'unknown'; resolvedCommand?: 'install' | 'update' | 'doctor' | 'help' | 'unknown'; target?: InstallTarget; paneVersion?: string; channel?: 'stable' | 'nightly'; format?: ArtifactFormat; platform?: PanePlatform; resolvedFormat?: Exclude; dryRun?: boolean; installKind?: 'existing' | 'installed' | 'launched-installer'; usedFallback?: boolean; failureStage?: WrapperFailureStage; failureCategory?: WrapperFailureCategory; errorCode?: string; exitCode?: number; } interface WrapperTelemetryProperties { [key: string]: string | number | boolean; } interface WrapperTelemetryInput { installId: string; wrapperVersion: string; invocation: WrapperInvocation; context: WrapperTelemetryContext; } export declare function createInitialTelemetryContext(argv: string[]): WrapperTelemetryContext; export declare function applyParsedArgsToTelemetryContext(context: WrapperTelemetryContext, parsed: { command: RunpaneCommand; target: InstallTarget; paneVersion: string; channel: 'stable' | 'nightly'; format: ArtifactFormat; dryRun: boolean; }): void; export declare function setSetupSelection(context: WrapperTelemetryContext, resolvedCommand: 'install' | 'update' | 'doctor', target?: InstallTarget): void; /** Records a thrown failure's code (the one its `--json` error prints) and, unless already set, its category. */ export declare function recordFailureCause(context: WrapperTelemetryContext, cause: unknown): void; /** Reads the error code first, then only the message's first line, so appended help text cannot skew it. */ export declare function categorizeFailure(cause: unknown): WrapperFailureCategory; export declare function buildWrapperTelemetryProperties(input: WrapperTelemetryInput): WrapperTelemetryProperties; export declare function trackWrapperEvent(event: WrapperTelemetryEventName, context: WrapperTelemetryContext): Promise; export {}; //# sourceMappingURL=telemetry.d.ts.map