import type { ContextDeletionTarget } from "../session-manager.js";
import type { CompactableTranscript, ValidatedContextDeletionResult } from "./context-compaction-types.js";
export interface EvictionGroup {
    entryIds: string[];
    order: number;
    tokens: number;
    boundary: boolean;
}
export declare function hasFitBudget(result: ValidatedContextDeletionResult | undefined, tokenBudget: number): result is ValidatedContextDeletionResult;
export declare function assistantTurnsForTargets(transcript: CompactableTranscript, targets: readonly ContextDeletionTarget[]): import("./context-assistant-turns.js").AssistantToolUseTurn[];
export declare function repairSignedTurnTargets(transcript: CompactableTranscript, targets: readonly ContextDeletionTarget[]): ContextDeletionTarget[];
export declare function targetsWithGroup(planned: readonly ContextDeletionTarget[], entryIds: readonly string[]): ContextDeletionTarget[];
export declare function validateTargets(transcript: CompactableTranscript, targets: readonly ContextDeletionTarget[]): ValidatedContextDeletionResult | undefined;
export declare function tryGroup(transcript: CompactableTranscript, planned: readonly ContextDeletionTarget[], group: EvictionGroup, repairBoundary: boolean): ValidatedContextDeletionResult | undefined;
export declare function currentHistoricalSignedGroups(transcript: CompactableTranscript, planned: readonly ContextDeletionTarget[]): EvictionGroup[];
export declare function skippedBoundaryRestorationGroups(transcript: CompactableTranscript, planned: readonly ContextDeletionTarget[], skipped: readonly EvictionGroup[]): EvictionGroup[][];
export declare function alternateBoundaryPlan(transcript: CompactableTranscript, initialTargets: readonly ContextDeletionTarget[], initialResult: ValidatedContextDeletionResult | undefined, groups: readonly EvictionGroup[], tokenBudget: number): ValidatedContextDeletionResult | undefined;
//# sourceMappingURL=context-compaction-eviction-alternates.d.ts.map