/** Best-effort MCP-native client and tool telemetry for rules-only clients. */ import { type ModelSource } from './model-attribution.js'; export interface McpClientInfo { name?: string; version?: string; title?: string; } export declare class McpEvidenceRecorder { private readonly serviceVersion; private client; constructor(serviceVersion: string); private record; clientInitialized(info?: McpClientInfo): void; /** * THE MODEL IS RESOLVED, NOT READ OFF AN ENV VAR NOBODY SETS. * * This used to be `process.env.TOKEN_OPTIMIZER_MODEL || null` and nothing * else -- a variable this package never sets and no client exports -- so * every analytics row recorded a null model. On a live ledger that left * 3,884 of 3,895 verified-savings operations unattributed and unpriceable, * and the dollar figure the product reported was computed from the five rows * that had somehow got one. `resolveModel` reads the exact catalog id out of * the client's own session log instead; see src/server/model-attribution.ts * for why it observes rather than infers. */ analyticsAttribution(): Promise<{ client: string; clientVersion: string | null; model: string | null; modelVersion: string | null; modelSource: ModelSource; }>; toolOutcome(toolName: string, durationMs: number, success: boolean): void; toolsListed(toolCount: number): void; transportConnected(): void; startupFailed(error: unknown): void; shutdown(): void; } //# sourceMappingURL=mcp-evidence.d.ts.map