import type { CompactableContentBlock, CompactableTranscript, CompactableTranscriptEntry } from "./context-compaction-types.js";
export declare function assistantEntryHasThinkingContentBlock(entry: CompactableTranscriptEntry): boolean;
export interface AssistantTurnEntry {
    entryId: string;
    role: string;
    hasSignedThinking: boolean;
    startsNewTurn: boolean;
}
export interface AssistantToolUseTurn {
    entryIds: string[];
    assistantEntryIds: string[];
    signedThinkingEntryIds: string[];
    active: boolean;
}
export type CompactableTranscriptDeletionTarget = {
    readonly kind: "entry";
    readonly entryId: string;
} | {
    readonly kind: "content_block";
    readonly entryId: string;
    readonly blockIndex: number;
};
export interface CompactableAssistantTurnAnalysis {
    deletedEntryIds: ReadonlySet<string>;
    deletedContentBlocks: ReadonlyMap<string, ReadonlySet<number>>;
    turns: AssistantToolUseTurn[];
}
export declare function compactableContentBlockIsLlmVisible(entry: CompactableTranscriptEntry, block: CompactableContentBlock): boolean;
export declare function transcriptEntryStartsNewTurn(entry: CompactableTranscriptEntry, deletedContentBlocks?: ReadonlySet<number>): boolean;
export declare function isTranscriptEntryEffectivelyDeleted(entry: CompactableTranscriptEntry, deletedEntryIds: ReadonlySet<string>, deletedContentBlocks: ReadonlyMap<string, ReadonlySet<number>>): boolean;
/** Shared adaptation from compactable transcript entries to logical assistant-turn inputs. */
export declare function compactableTranscriptToAssistantTurnEntries(transcript: CompactableTranscript, deletedEntryIds: ReadonlySet<string>, deletedContentBlocks: ReadonlyMap<string, ReadonlySet<number>>): AssistantTurnEntry[];
/** Analyze assistant turns after projecting a compactable transcript through deletion targets. */
export declare function analyzeCompactableAssistantTurns(transcript: CompactableTranscript, targets: readonly CompactableTranscriptDeletionTarget[]): CompactableAssistantTurnAnalysis;
/**
 * Analyze chronological LLM-visible entries as logical assistant tool-use turns.
 * Callers adapt each context-visible user-like message into `startsNewTurn`;
 * tool results remain in the current turn. A trailing input-only turn is omitted,
 * intentionally leaving the preceding assistant turn historical rather than active.
 */
export declare function analyzeAssistantToolUseTurns(entries: readonly AssistantTurnEntry[]): AssistantToolUseTurn[];
//# sourceMappingURL=context-assistant-turns.d.ts.map