import { type ProfileName, type ResolvedProfileConfig } from '../config.js';
import { type ToolExecutionContext, type ToolRuntime, type IToolRuntime, type ToolRuntimeObserver, type ToolSuite } from '../core/toolRuntime.js';
import type { ProviderId, ReasoningEffortLevel, TextVerbosityLevel, ThinkingBudgetConfig, ThinkingLevel } from '../core/types.js';
import { AgentRuntime, type AgentCallbacks } from '../core/agent.js';
import { ContextManager } from '../core/contextManager.js';
export interface AgentSessionOptions {
    profile: ProfileName;
    workspaceContext: string | null;
    toolSuites?: ToolSuite[];
    toolObserver?: ToolRuntimeObserver;
}
export interface ModelSelection {
    provider: ProviderId;
    model: string;
    temperature?: number;
    maxTokens?: number;
    systemPrompt?: string;
    reasoningEffort?: ReasoningEffortLevel;
    textVerbosity?: TextVerbosityLevel;
    /** Extended thinking configuration for supported models (Anthropic Claude 4/3.7, Gemini 2.5+) */
    thinking?: ThinkingBudgetConfig;
    /** Thinking level for models that support discrete intensities (Gemini 3 Pro) */
    thinkingLevel?: ThinkingLevel;
}
export declare class AgentSession {
    private readonly state;
    constructor(options: AgentSessionOptions);
    /**
     * Creates a context manager with LLM-based summarization support
     */
    private createContextManagerWithSummarization;
    get profile(): ProfileName;
    get profileConfig(): ResolvedProfileConfig;
    get workspaceContext(): string | null;
    get toolRuntime(): ToolRuntime;
    get toolContext(): ToolExecutionContext;
    createAgent(selection: ModelSelection, callbacks?: AgentCallbacks, toolRuntimeOverride?: IToolRuntime, options?: {
        explainEdits?: boolean;
    }): AgentRuntime;
    updateToolContext(selection: ModelSelection): void;
    refreshWorkspaceContext(workspaceContext: string | null): ResolvedProfileConfig;
    get contextManager(): ContextManager;
    get toolSuites(): ToolSuite[];
}
//# sourceMappingURL=agentSession.d.ts.map