import type { Message } from "@opencode-ai/sdk"; import type { HarnessCompactionConfig } from "../config/harness-config.js"; import { type TokenCompactionSummarizeOptions } from "./token-compaction-evidence.js"; import type { TokenTelemetryRecordResult } from "./token-telemetry.js"; export type { TokenCompactionSummarizeOptions } from "./token-compaction-evidence.js"; export type TokenCompactionClient = { readonly session: { readonly summarize?: (options: TokenCompactionSummarizeOptions) => Promise | unknown; }; }; export type TokenCompactionResult = { readonly kind: "disabled"; } | { readonly kind: "failed"; readonly path: string; readonly reason: string; } | { readonly kind: "skipped"; readonly path: string; readonly reason: string; } | { readonly kind: "triggered"; readonly path: string; }; type TokenCompactionTrackerOptions = { readonly client?: TokenCompactionClient; readonly config: HarnessCompactionConfig; readonly evidenceDir?: string; readonly projectDir: string; }; export declare class TokenCompactionTracker { private readonly options; private readonly cooldownUntilBySession; private readonly evidenceDir; constructor(options: TokenCompactionTrackerOptions); maybeSummarize(message: Message, telemetryResult: TokenTelemetryRecordResult, now?: Date): Promise; }