import type { IChatConversationResponseTrace } from "../../../types.js"; import type { IInteractionIntelligence, IInteractionIntelligenceTotals } from "./types.js"; /** * Builds the render model for one response: a step carries timing/token spend but no category, * the actions within it carry a category but no timing, and the two are joined here. * * Every action's category is kept, and time stays whole on the step's own tile — nothing is split * or summed per category, so two categories highlighting the same tile is not double-counting. A * category comes only from `detail.category`; an action without a `detail` yields no category row, * though its step keeps its time regardless. * * A tile's `index` is its array position, not the backend's `stepIndex` — it is the highlight key. * The memory applied to the turn runs before the backend's first step and has none of its own, so * it becomes the turn's first step here when it reports a duration, shifting the rest one place * along; without one it still gets a category row, with no tile to highlight. * @internal */ export declare function deriveInteractionIntelligenceFromSteps(responseId: string, trace: IChatConversationResponseTrace): IInteractionIntelligence; /** * The turn-level totals only, without resolving categories or building any detail rows — cheaper * than {@link deriveInteractionIntelligenceFromSteps} for callers (e.g. the inline trigger) that * only need the duration/token summary, and the single source of truth both callers share. * @internal */ export declare function deriveInteractionIntelligenceTotals(trace: IChatConversationResponseTrace): IInteractionIntelligenceTotals; //# sourceMappingURL=deriveInteractionIntelligenceFromSteps.d.ts.map