import type { ContextCompactionItem } from "./types.js"; import { type OpenGeniText } from "../messages/runtime.js"; /** Headline for a compaction that could not produce a checkpoint. */ export declare const COMPACTION_FAILURE_TITLE: (t: OpenGeniText) => string; /** * Headline for a compaction cut short by its own attempt's cancellation (for * example a worker restarting during a deploy). Not a failure: the recovered * attempt checks again and compacts if the history still needs it. */ export declare const COMPACTION_INTERRUPTED_TITLE: (t: OpenGeniText) => string; /** Headline for a settled `skipped` compaction landmark. */ export declare function compactionSkipTitle(t: OpenGeniText, reason: string | null): string; /** Why a definitive provider rejection repeats; shown behind Details. */ export declare const COMPACTION_REJECTION_NOTE: (t: OpenGeniText) => string; /** * Subtitle for a settled compaction landmark. Kept short: a definitive provider * rejection withholds the generic retry promise, names the one recovery step, * and moves its identifiers behind Details ({@link compactionFailureDetails}). */ export declare function compactionSkipSubtitle(t: OpenGeniText, reason: string | null, providerRejection?: ContextCompactionItem["providerRejection"]): string; export type CompactionFailureDetails = { /** One plain sentence on why it failed, when known. */ note: string | null; /** Provider identifiers or the recorded error text, in display order. */ facts: Array<{ label: string; value: string; }>; }; /** * Technical diagnostics for a failed compaction landmark, or null when it has * none: a definitive provider rejection lists its content-free identifiers; * any other failure shows the turn's recorded error text. Presentation only. */ export declare function compactionFailureDetails(t: OpenGeniText, item: Pick): CompactionFailureDetails | null; /** * Short chip copy for a turn's failure reason. A compaction failure records the * raw provider text after a fixed prefix; the chip names the outcome instead * and keeps the recorded text as `detail` (a hover title). Every other reason * passes through unchanged. */ export declare function presentTurnFailureText(t: OpenGeniText, failureText: string | null | undefined): { summary: string; detail?: string; } | null; /** `HTTP 400 invalid_request_error, param input[3].encrypted_content`; identifiers only. */ export declare function describeCompactionProviderRejection(rejection: NonNullable): string;