import { type CliRuntime } from "@velum-labs/routekit-cli-core"; import { type CommandCompletedProperties } from "@velum-labs/routekit-telemetry-core"; import type { CliSession } from "./cli-session.js"; export type CommandTelemetryAttempt = { path: string; startedAt: number; }; export declare class CommandTelemetry { private readonly session; private readonly runtime; private attempt; constructor(session: CliSession, runtime?: CliRuntime); begin(path: string, startedAt?: number): void; finish(exitKind: CommandCompletedProperties["exit_kind"]): Promise; } /** Actionable CLI commands that must not emit `command_completed`. */ export declare const TELEMETRY_EXCLUDED_COMMANDS: readonly ["setup", "self-update", "version", "completion", "__complete", "__self-inspect", "credential.get", "token.shell"]; export declare function isTelemetryExcludedCommand(path: string): boolean; export declare function normalizedTelemetryCommand(path: string): CommandCompletedProperties["command"] | undefined; /** Best effort only: uses an already-resolved client and never discovers or starts a daemon. */ export declare function captureCommandCompleted(attempt: CommandTelemetryAttempt | undefined, exitKind: CommandCompletedProperties["exit_kind"], now: number | undefined, session: CliSession, runtime?: CliRuntime): Promise;