import type { AvailabilitySite, FillTarget } from '../workflow-context/workflow-context.js'; import type { RoutedExpression } from './route-expression.js'; export declare const EVALUATION_TRACE_VALUE_CAP_BYTES = 1024; export declare const EVALUATION_TRACE_MAX_ENTRIES = 256; export declare const EVALUATION_TRACE_MAX_BYTES: number; export interface EvaluationTraceEntry { readonly expression: string; readonly roots: readonly string[]; readonly fillTarget: FillTarget; readonly evaluatedAt: AvailabilitySite; readonly value?: string; readonly truncated?: boolean; readonly exprTruncated?: boolean; readonly reference?: boolean; readonly degraded?: boolean; } export interface EvaluationTraceLimitEntry { readonly truncated: true; readonly dropped: number; } export type EvaluationTraceRowEntry = EvaluationTraceEntry | EvaluationTraceLimitEntry; export interface EvaluationTraceEntryInput { readonly expression: string; readonly roots: readonly string[]; readonly fillTarget: FillTarget; readonly evaluatedAt: AvailabilitySite; readonly value?: string; readonly reference?: boolean; readonly degraded?: boolean; } export interface PredicateTraceEntryInput { readonly expression: string; readonly route: RoutedExpression; readonly site: AvailabilitySite; readonly value: boolean; readonly degraded?: boolean; } export declare function capTraceValue(value: string): { value: string; truncated: boolean; }; export declare function evaluationTraceEntry(input: EvaluationTraceEntryInput): EvaluationTraceEntry; export declare function predicateTraceEntry(input: PredicateTraceEntryInput): EvaluationTraceEntry; /** * Keeps the largest deterministic prefix that fits the entry and serialized UTF-8 byte limits. * Existing dropped markers are folded into the final marker so repeated capping remains idempotent. */ export declare function capTraceEntries(entries: readonly Entry[], maxBytes?: number): readonly (Exclude | EvaluationTraceLimitEntry)[]; //# sourceMappingURL=evaluation-trace.d.ts.map