import type { ContextDeletionTarget } from "../session-manager.ts";
import type { CompactableContentBlock, CompactableTranscript, CompactableTranscriptEntry, ContextDeletionRequest } from "./context-compaction-types.ts";
export declare function targetKey(target: ContextDeletionTarget): string;
export declare function rawTargetKey(target: ContextDeletionRequest["deletions"][number]): string;
export declare function normalizeRawTarget(target: ContextDeletionRequest["deletions"][number]): ContextDeletionTarget;
export declare function assertIdOnlyDeletionTarget(target: Record<string, unknown>): void;
export declare function rawDeletionFromTarget(target: ContextDeletionTarget): ContextDeletionRequest["deletions"][number];
export declare function deletionRequestFromTargets(targets: readonly ContextDeletionTarget[]): ContextDeletionRequest;
export declare function getDeletedEntryIds(targets: readonly ContextDeletionTarget[]): Set<string>;
export declare function getDeletedContentBlocks(targets: readonly ContextDeletionTarget[]): Map<string, Set<number>>;
export declare function recentContextEntryBoundary(transcript: CompactableTranscript): number;
export declare function getRecentContextEntryIds(transcript: CompactableTranscript): Set<string>;
export declare function isRecentContextEntry(entry: CompactableTranscriptEntry, transcript: CompactableTranscript): boolean;
export declare function formatRecentContextDeletionError(transcript: CompactableTranscript, target: ContextDeletionTarget): string;
export declare function deletionGuidance(): string;
export declare function findTranscriptEntry(transcript: CompactableTranscript, entryId: string): CompactableTranscriptEntry | undefined;
export declare function findTranscriptContentBlock(transcript: CompactableTranscript, target: ContextDeletionTarget): CompactableContentBlock | undefined;
export declare function firstToolCallBlockTarget(entry: CompactableTranscriptEntry, callId: string): ContextDeletionTarget | undefined;
export declare function formatProtectedDeletionError(transcript: CompactableTranscript, target: ContextDeletionTarget): string;
export declare function formatProtectedToolDependencyError(transcript: CompactableTranscript, blockedTarget: ContextDeletionTarget, context: string): string;
export declare function isProtectedContextDeletionErrorMessage(message: string): boolean;
export declare function assertNoRecentContextDeletionTargets(transcript: CompactableTranscript, targets: readonly ContextDeletionTarget[]): void;
export declare function latestAssistantEntry(transcript: CompactableTranscript, deletedEntryIds?: ReadonlySet<string>): CompactableTranscriptEntry | undefined;
export declare function findAssistantThinkingContentBlockDeletionViolation(transcript: CompactableTranscript, targets: readonly ContextDeletionTarget[]): Extract<ContextDeletionTarget, {
    kind: "content_block";
}> | undefined;
export declare function findLatestAssistantThinkingDeletionViolation(transcript: CompactableTranscript, targets: readonly ContextDeletionTarget[]): ContextDeletionTarget | undefined;
export declare function assertNoAssistantThinkingContentBlockDeletionTargets(transcript: CompactableTranscript, targets: readonly ContextDeletionTarget[]): void;
export declare function assertNoLatestAssistantThinkingDeletionTargets(transcript: CompactableTranscript, targets: readonly ContextDeletionTarget[]): void;
export declare function isToolCallBlockDeleted(entry: CompactableTranscriptEntry, callId: string, deletedEntryIds: ReadonlySet<string>, deletedContentBlocks: ReadonlyMap<string, ReadonlySet<number>>): boolean;
export declare function toolCallBlockIndexes(entry: CompactableTranscriptEntry, callId: string): number[];
export declare function addTarget(targets: ContextDeletionTarget[], target: ContextDeletionTarget): boolean;
export declare function deleteEntryTarget(targets: ContextDeletionTarget[], entryId: string): boolean;
export declare function mergeContextDeletionTargets(baseTargets: readonly ContextDeletionTarget[], additionalTargets: readonly ContextDeletionTarget[]): ContextDeletionTarget[];
export declare function canonicalizeEntryTargets(transcript: CompactableTranscript, targets: ContextDeletionTarget[], entry: CompactableTranscriptEntry): boolean;
export declare function addToolCallDeletion(transcript: CompactableTranscript, targets: ContextDeletionTarget[], entry: CompactableTranscriptEntry, callId: string): boolean;
/** Whether a task-bearing entry remains provider-visible after proposed block deletions. */
export declare function isTaskBearingEntry(entry: CompactableTranscriptEntry, deletedContentBlocks?: ReadonlySet<number>): boolean;
export declare function isRecentTarget(transcript: CompactableTranscript, target: ContextDeletionTarget): boolean;
export declare function isStaleUserImageOnlyEntry(transcript: CompactableTranscript, entry: CompactableTranscriptEntry): boolean;
export declare function canDeleteStaleUserImageContentBlock(transcript: CompactableTranscript, target: ContextDeletionTarget): boolean;
export declare function canDeleteTarget(transcript: CompactableTranscript, target: ContextDeletionTarget): boolean;
//# sourceMappingURL=context-deletion-targets.d.ts.map