/**
 * Thinking Types
 *
 * Defines types for thinking ability management across the application.
 * Thinking-level labels for transcript hygiene.
 */
/**
 * Thinking level for models that support extended thinking.
 * - off: No thinking
 * - minimal: Minimal thinking effort
 * - low: Low thinking effort
 * - medium: Medium thinking effort
 * - high: High thinking effort
 * - xhigh: Extra high thinking (for supported models only)
 * - adaptive: Automatically adjust based on task complexity
 */
export type ThinkLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'adaptive';
/**
 * Reasoning visibility level.
 * Controls whether the model's reasoning/thinking is shown to the user.
 * - off: Hide reasoning
 * - on: Show reasoning after completion
 * - stream: Stream reasoning in real-time
 */
export type ReasoningLevel = 'off' | 'on' | 'stream';
/**
 * Verbose level for agent output.
 * - off: Minimal output
 * - on: Normal verbose output
 * - full: Full verbose output with all details
 */
export type VerboseLevel = 'off' | 'on' | 'full';
/**
 * Elevated mode for bash execution permissions.
 * - off: No elevated permissions
 * - ask: Ask for confirmation before elevated commands
 * - full: Allow all elevated commands without confirmation
 */
export type ElevatedMode = 'off' | 'ask' | 'full';
/**
 * Session-level configuration for agent behavior.
 * These settings can be overridden per-session.
 */
export interface SessionAgentConfig {
    /** Thinking level for this session */
    thinkingLevel?: ThinkLevel;
    /** Reasoning visibility for this session */
    reasoningLevel?: ReasoningLevel;
    /** Verbose level for this session */
    verboseLevel?: VerboseLevel;
    /** Elevated mode for this session */
    elevatedMode?: ElevatedMode;
    /** Model override for this session */
    modelOverride?: string;
    /** Provider override for this session */
    providerOverride?: string;
    /** Per-session markdown workspace root override (immutable once set) */
    workingDirectoryOverride?: string;
}
/**
 * Normalize a raw string to ThinkLevel.
 * Handles various aliases and formats.
 */
export declare function normalizeThinkLevel(raw?: string | null): ThinkLevel | undefined;
/**
 * Normalize a raw string to ReasoningLevel.
 */
export declare function normalizeReasoningLevel(raw?: string | null): ReasoningLevel | undefined;
/**
 * Normalize a raw string to VerboseLevel.
 */
export declare function normalizeVerboseLevel(raw?: string | null): VerboseLevel | undefined;
/**
 * Normalize a raw string to ElevatedMode.
 */
export declare function normalizeElevatedMode(raw?: string | null): ElevatedMode | undefined;
/**
 * Get available thinking levels for a provider/model.
 * Returns ['off', 'on'] for binary providers like z.ai.
 */
export declare function listThinkingLevels(provider?: string | null, model?: string | null): (ThinkLevel | 'on')[];
/**
 * Format thinking levels as a comma-separated string for display.
 */
export declare function formatThinkingLevels(provider?: string | null, model?: string | null): string;
/**
 * Convert ThinkLevel to a numeric value for comparison.
 * Higher value = more thinking.
 */
export declare function thinkLevelToNumber(level: ThinkLevel): number;
