import type { AssistantMessage, AssistantMessageEventStream } from '@earendil-works/pi-ai/compat'; import { type Observation } from '../observability/runtime.js'; import type { AiUsageContext, AiUsageFinish, AiUsageModel } from './types.js'; export type AiUsageCall = { id: string; finish: (result: AiUsageFinish) => void; run: Observation['run']; }; export declare function continuesAfterTool(messages: readonly { role?: string; }[]): boolean; export declare function startAiUsageCall(model: AiUsageModel, context: AiUsageContext, input?: unknown): AiUsageCall; export declare function observeAiUsageStream(stream: AssistantMessageEventStream, call: AiUsageCall | undefined): AssistantMessageEventStream; export declare function trackAiUsageStream(model: AiUsageModel, context: AiUsageContext, create: () => AssistantMessageEventStream | Promise, input?: unknown): AssistantMessageEventStream | Promise; export declare function finishAiUsageFromMessage(call: AiUsageCall | undefined, message: AssistantMessage): void;