/**
 * Conversation context slicing for sub-agent inheritance (agent inheritContext=true).
 *
 * Produces a SAFE, budget-capped prefix of the parent conversation for a forked
 * sub-agent: system prompts dropped (the child has its own), media/tool plumbing
 * stripped (the child's tool_call_ids differ — carrying parent tool results would
 * dangle), budget-capped from the tail, sensitive text redacted in group mode.
 *
 * Pure + dependency-free so it is unit-testable in isolation.
 */
import type { ChatMessage } from "../agent/types.js";
export interface ConversationContextSlice {
    /** Trimmed parent messages (user/assistant text only, oldest→newest). */
    messages: ChatMessage[];
    /** Approximate token count of the slice (chars/4 heuristic). */
    approxTokens: number;
    /** Whether older messages were dropped to fit the budget. */
    truncated: boolean;
}
export interface ConversationContextOptions {
    /** Token budget for the inherited prefix. */
    maxTokens: number;
    /** Redact secret-looking text (group chat / untrusted). */
    redactSensitive: boolean;
}
/**
 * Build a sub-agent-safe slice of the parent conversation.
 * Returns null when there is nothing inheritable (no user/assistant text).
 */
export declare function buildConversationContextSlice(history: readonly ChatMessage[] | null | undefined, opts: ConversationContextOptions): ConversationContextSlice | null;
