import { AgentSession } from '../../../agent/session.js'; import type { PermissionMode } from '../../../agent/types/sdk-types.js'; import type { ThinkingConfig, EffortLevel } from '../../../agent/types.js'; import type { AgentConfig } from '../../../agent/types.js'; import type { ModelProvider } from '../../../agent/provider.js'; import type { HookRegistry } from '../../../agent/hooks.js'; import type { TraceWriter } from '../../../agent/trace/index.js'; import type { CliConfig } from '../../config.js'; export interface BuildAgentSessionDeps { model: string; resumeConfig: Partial; systemPrompt: string | undefined; systemPromptSource: string | undefined; thinking: ThinkingConfig | undefined; effort: EffortLevel | undefined; maxOutputTokens: number | undefined; maxToolUseIterations: number | undefined; providerFactory: (model: string | undefined) => ModelProvider; hookRegistry: HookRegistry; traceWriter: TraceWriter | undefined; drainSubagents?: ((reason: string) => Promise) | undefined; bashOutputTailReporter?: (toolUseId: string) => (tail: string | undefined) => void; cwd: string | undefined; maxTurns: number; autoResumeOnUsageLimit: boolean | undefined; permissionMode?: PermissionMode; baseUrl?: string; temperature?: number; explicitProvider?: string; } export declare function buildAgentSession(deps: BuildAgentSessionDeps): AgentSession; export declare function buildSharedDeps(a: { sessionModel: string; resumeConfig: Partial; systemPrompt: string | undefined; systemPromptSource: string | undefined; thinking: ThinkingConfig | undefined; effort: EffortLevel | undefined; maxOutputTokens: number | undefined; maxToolUseIterations: number | undefined; cliConfig: CliConfig; providerFactory: (m: string | undefined) => ModelProvider; hookRegistry: HookRegistry; traceWriter: TraceWriter | undefined; drainSubagents?: ((reason: string) => Promise) | undefined; bashOutputTailReporter?: (toolUseId: string) => (tail: string | undefined) => void; effectiveCwd: string | undefined; maxTurns: string; initialPermissionMode: PermissionMode | undefined; explicitProvider?: string; }): BuildAgentSessionDeps;