/**
 * Extended Thinking Mode
 *
 * Manages extended thinking configuration for LLM requests.
 * When enabled, the API request includes a thinking budget that allows
 * the model to reason through complex problems before responding.
 *
 * @module agent/extended-thinking
 */
/**
 * Configuration returned by getThinkingConfig() when thinking is enabled
 */
export interface ThinkingConfig {
    thinking?: {
        type: 'enabled';
        budget_tokens: number;
    };
}
/**
 * Manages extended thinking mode for LLM API requests.
 *
 * When enabled, getThinkingConfig() returns a config object that should
 * be merged into the API request parameters.
 */
export declare class ExtendedThinkingManager {
    private enabled;
    private maxThinkingTokens;
    private alwaysEnabled;
    constructor();
    /**
     * Toggle extended thinking on/off
     * @returns The new enabled state
     */
    toggle(): boolean;
    /**
     * Check if extended thinking is currently enabled
     */
    isEnabled(): boolean;
    /**
     * Get the current token budget
     */
    getTokenBudget(): number;
    /**
     * Set the token budget for extended thinking
     */
    setTokenBudget(n: number): void;
    /**
     * Set whether extended thinking is always enabled
     */
    setAlwaysEnabled(value: boolean): void;
    /**
     * Get the thinking configuration to merge into API request parameters.
     * Returns an object with a `thinking` key when enabled, or an empty object when disabled.
     */
    getThinkingConfig(): ThinkingConfig;
}
/**
 * Get the singleton ExtendedThinkingManager instance
 */
export declare function getExtendedThinking(): ExtendedThinkingManager;
/**
 * Reset the singleton (useful for testing)
 */
export declare function resetExtendedThinking(): void;
