import { type Component } from "@pk-nerdsaver-ai/pi-tui";
import type { CompactionSummaryMessage, CustomMessage } from "../../session/messages";
/**
 * Compaction point in the transcript, rendered as a slim horizontal divider:
 *
 *   ──────── 📷 compacted · ctrl+o ────────
 *
 * The conversation above the divider stays visible (display transcript keeps
 * full history); only the LLM context was reset. Expanding (ctrl+o) reveals
 * the compaction summary below the divider.
 */
export declare class CompactionSummaryMessageComponent implements Component {
    #private;
    private readonly message;
    constructor(message: CompactionSummaryMessage);
    setExpanded(expanded: boolean): void;
    invalidate(): void;
    render(width: number): readonly string[];
}
/**
 * Handoff is a compaction strategy too, but it is persisted as a custom message
 * so the LLM sees the handoff-specific developer context. Render it with the
 * same divider affordance as `/compact` instead of the generic `[handoff]` box.
 */
export declare class HandoffSummaryMessageComponent implements Component {
    #private;
    private readonly message;
    constructor(message: CustomMessage<unknown>);
    setExpanded(expanded: boolean): void;
    invalidate(): void;
    render(width: number): readonly string[];
}
export declare function createHandoffSummaryMessageComponent(message: CustomMessage<unknown>, expanded: boolean): HandoffSummaryMessageComponent | undefined;
