import type { AgentExecutionCounter } from '../../types/sdk/agent'; import type { BuiltObservationLogStore, ObservationLogEntry, ObservationLogReflectFn, ObservationLogReflectorInput, ObservationLogReflection, ObservationLogReflectionResult } from '../../types/sdk/observation-log'; import type { BuiltTelemetry } from '../../types/telemetry'; import { type TokenCounter } from '../model/model-token-counter'; export type { ObservationLogReflectFn, ObservationLogReflectorInput }; export type ObservationLogReflectorMemory = BuiltObservationLogStore; export interface ObservationLogReflectorWarning { message: string; observationScopeId: string; tokenCount: number; tokenBudget: number; } export interface RunObservationLogReflectorOpts { memory: ObservationLogReflectorMemory; observationScopeId: string; reflectorThresholdTokens: number; reflect: ObservationLogReflectFn; tokenCounter?: TokenCounter; now?: Date; onWarning?: (warning: ObservationLogReflectorWarning) => void; executionCounter?: AgentExecutionCounter; telemetry?: BuiltTelemetry; } export type RunObservationLogReflectorResult = { status: 'skipped'; reason: 'below-threshold'; tokenCount: number; } | { status: 'ran'; tokenCount: number; remainingTokenCount: number; overBudgetAfterReflection: boolean; reflection: ObservationLogReflection; result: ObservationLogReflectionResult; }; export declare function parseObservationLogReflectionJson(output: string): ObservationLogReflection; export declare function renderObservationLogForReflection(entries: ObservationLogEntry[]): string; export declare function normalizeObservationLogReflection(activeObservationLog: ObservationLogEntry[], reflection: ObservationLogReflection): ObservationLogReflection; export declare function runObservationLogReflector(opts: RunObservationLogReflectorOpts): Promise;