import { type CliChannel, type CliEvent, type CliInstallMethod, type CliOutcome } from "../core/cli-types.js"; type TelemetryReason = "default" | "config_enabled" | "config_disabled" | "env_disabled" | "env_debug" | "local_only"; export interface TelemetryCommandContext { command: string; subcommand?: string; source?: string; cliVersion: string; channel: CliChannel; installMethod: CliInstallMethod; options: { json: boolean; noInput: boolean; quiet: boolean; detach: boolean; ipc: boolean; }; localOnly?: boolean; } export interface TelemetryStatus { enabled: boolean; mode: "normal" | "disabled" | "debug"; reason: TelemetryReason; installId: string; endpoint: string; queuedBatches: number; } interface CommandResult { exitCode: number; outcome?: string | null; errorClass?: string | null; } export interface CliTelemetrySession { /** Translate a CLI-native event into canonical telemetry events. */ trackCliEvent(event: CliEvent | CliOutcome): void; /** * No-op shim for call sites that emitted ad-hoc custom events. The * canonical contract does not support arbitrary event names; the * intended way to carry producer-specific detail is via * `extensions` on host events, already handled by the session. */ trackCustomEvent(eventName: string, patch?: Record): void; /** Mark the overall command result and emit host/collection terminals. */ markCommandResult(result: CommandResult): void; /** Persist queued events to the outbox. */ persist(): Promise; /** Attempt to flush outbox files to the server. */ flush(): Promise; } export declare function flushTelemetryOutbox(): Promise; export declare function getTelemetryStatus(): Promise; export declare function setTelemetryEnabled(enabled: boolean): Promise; export declare function setActiveTelemetrySession(session: CliTelemetrySession | null): void; export declare function getActiveTelemetrySession(): CliTelemetrySession | null; export declare function createCliTelemetrySession(context: TelemetryCommandContext): Promise; /** @deprecated trackCustomEvent on the session is a no-op in the canonical * model. This top-level helper is also a no-op — kept only to satisfy * existing call sites. */ export declare function trackActiveTelemetryEvent(_eventName?: string, _patch?: unknown): void; export {}; //# sourceMappingURL=telemetry.d.ts.map