/**
 * Model and thinking level management — pure logic.
 *
 * Extracted from AgentSession. All functions are pure (no side effects).
 * AgentSession delegates to these for cycling math and level clamping,
 * then handles persistence and extension events itself.
 */
import type { Model } from '../../ai/types.js';
import type { ThinkingLevel } from '../../core/index.js';
/** Result from cycleModel() */
export interface ModelCycleResult {
    model: Model<any>;
    thinkingLevel: ThinkingLevel;
}
/** Standard thinking levels (ordered low → high) */
export declare const THINKING_LEVELS: ThinkingLevel[];
/** Thinking levels including xhigh (for supported models) */
export declare const THINKING_LEVELS_WITH_XHIGH: ThinkingLevel[];
/** Check if a model supports thinking/reasoning. */
export declare function supportsThinking(model: Model<any> | undefined): boolean;
/** Check if a model supports xhigh thinking. */
export declare function supportsXhighThinking(model: Model<any> | undefined): boolean;
/** Get available thinking levels for a given model. */
export declare function getAvailableThinkingLevels(model: Model<any> | undefined): ThinkingLevel[];
/**
 * Clamp a thinking level to the nearest available level.
 * Searches forward first (higher levels), then backward (lower levels).
 */
export declare function clampThinkingLevel(level: ThinkingLevel, availableLevels: ThinkingLevel[]): ThinkingLevel;
/**
 * Compute the next thinking level in a cycle.
 * @returns The next level, or undefined if model doesn't support thinking.
 */
export declare function cycleThinkingLevel(currentLevel: ThinkingLevel, model: Model<any> | undefined): ThinkingLevel | undefined;
/**
 * Compute the next model in the cycle.
 * Pure index math — does not mutate state.
 * @returns The next model, or undefined if ≤1 model available.
 */
export declare function computeNextModel(availableModels: Model<any>[], currentModel: Model<any> | undefined, direction: 'forward' | 'backward'): Model<any> | undefined;
//# sourceMappingURL=session-models.d.ts.map