import type { CallOptions, ILlm, LlmError, LlmResponse, LlmStreamChunk, LlmTool, LlmUsage, Message, Result } from '@mcp-abap-adt/llm-agent'; /** * An ILlm decorator that reports token usage after every `chat` or `streamChat` * call via an injected `logUsage` callback. This is the authoritative path for * per-role usage logging in the Stepper runtime — it ensures every role's LLM * call is captured in the request-scoped byComponent breakdown regardless of * whether the role is the executor, planner, reviewer, or finalizer. * * Usage: * const logged = new LoggingLlm(innerLlm, (u, d) => * requestLogger.logLlmCall({ component: 'planner', model, ...u, durationMs: d }) * ); * * For `streamChat`, usage is accumulated from stream chunks and logged once the * stream ends. */ export declare class LoggingLlm implements ILlm { private readonly inner; /** Called once per LLM invocation with the accumulated usage and duration. */ private readonly logUsage; constructor(inner: ILlm, /** Called once per LLM invocation with the accumulated usage and duration. */ logUsage: (usage: LlmUsage, durationMs: number) => void); get model(): string | undefined; chat(messages: Message[], tools?: LlmTool[], options?: CallOptions): Promise>; streamChat(messages: Message[], tools?: LlmTool[], options?: CallOptions): AsyncIterable>; healthCheck?(options?: CallOptions): Promise>; getModels?(options?: CallOptions): Promise>; } //# sourceMappingURL=logging-llm.d.ts.map