import type { InvokeModelContext } from '../../../middleware/stages.js';
import type { MiddlewareInputHandler } from '../../../middleware/types.js';
import type { Model } from '../../../models/model.js';
export declare const summarizeContextTool: import("../../../index.js").InvokableTool<{
    keepRecent?: number | undefined;
    summaryRatio?: number | undefined;
    messageType?: "messages" | "tools" | "all" | undefined;
}, `No summarization performed: not enough eligible messages to compress (conversation has ${number} messages, preserving recent ${number}).` | `No summarization performed: no valid split boundary found from index ${number} onward (requires a message that isn't mid-tool-call). Try a smaller keepRecent, a larger summaryRatio, or use truncate_context with messageType="tools" instead.` | `No summarization performed: no ${string} messages found in range (conversation has ${number} messages).` | `Summarization failed: ${string}` | `Summarized ${number} ${string}message(s). Removed ${number} message(s), ${number} remaining.`>;
export declare const truncateContextTool: import("../../../index.js").InvokableTool<{
    keepRecent?: number | undefined;
    messageType?: "messages" | "tools" | "all" | undefined;
}, `No messages dropped: conversation only has ${number} messages.` | `No messages dropped: no valid trim boundary exists between index ${number} and ${number} (requires a plain user text message). Try a larger keepRecent or use summarize_context instead.` | `No messages dropped: no ${string} messages found in range (conversation has ${number} messages).` | `Dropped ${number} ${string}message(s). ${number} remaining.`>;
export declare function createTokenUsageMiddleware(model: Model): MiddlewareInputHandler<InvokeModelContext>;
export declare const pinContextTool: import("../../../index.js").InvokableTool<{
    select: number | number[] | "last_turn";
    action: "pin" | "unpin";
    filter?: "user" | "assistant" | "tools" | undefined;
}, "No messages in the conversation." | `All indices out of range (conversation has ${number} messages).` | "No matching messages found." | `Pinned ${number} message(s).` | `Unpinned ${number} message(s).`>;
//# sourceMappingURL=agentic-context.d.ts.map