import type { ContentBlockParam } from '@anthropic-ai/sdk/resources'; import type { TraceWriter } from '../trace/writer.js'; import type { HookRegistry } from '../hooks.js'; import type { ProviderCommandInfo, ProviderCompactResult, ProviderQuery, ProviderRewindConversationResult, RewindTarget } from '../provider.js'; import type { AccountInfo, AgentConfig, AgentInfo, AgentModelInput, IAgentSession, InputStreamRef, McpServerStatus, Message, ModelInfo, OutputEvent, PermissionMode, ResponseMetadata, RewindFilesResult, SDKControlGetContextUsageResponse, SendMessageOptions, SessionIdentity, SessionMetadata, SessionState, StructuredMessageOptions } from '../types.js'; import type { ZodType } from 'zod'; import type { ElicitationRequest } from '../types/sdk-types.js'; export declare class AgentSession implements IAgentSession { private readonly ownedTraceWriter; private config; private readonly planExit; private currentState; private providerQuery; private providerIterator; private conversationHistory; private turnCount; private inboundMessageCount; private subagentOutputRecorder; private pendingFrameworkContext; private lastResponseMetadata; private initPromise; private inputStream; private readonly abortController; private readonly _hookRegistry; private readonly ownsTraceSeal; private stateManager; private readonly accounting; private readonly ledger; private readonly outputBroadcast; private readonly shutdown; private runner; constructor(config: AgentConfig, ownedTraceWriter?: TraceWriter); private initSdkLifecycle; get state(): SessionState; get sessionId(): string | undefined; get cwd(): string | undefined; get abortSignal(): AbortSignal; get hookRegistry(): HookRegistry | undefined; abort(reason: string): void; private makeSendDeps; sendMessage(content: string, options?: SendMessageOptions): Promise; sendMessageStructured(content: string, schema: ZodType, options?: StructuredMessageOptions): Promise; sendMessageStream(content: string | ContentBlockParam[]): AsyncIterableIterator; interrupt(): Promise; setBeforeNextRound(cb: (() => string | undefined) | undefined): void; reset(): Promise; private onAbort; private makeConfigDeps; setModel(model?: AgentModelInput): Promise; setPermissionMode(mode: PermissionMode): Promise; setSystemPrompt(basePrompt: string | undefined): boolean; setCwd(cwd: string): void; reauth(): Promise<{ accountId: string; swapped: boolean; } | null>; getPrePlanMode(): PermissionMode | undefined; setPlanExitQueueCheck(fn: () => boolean): void; takePendingPlanExitSeed(): Promise<{ message: string; mode: PermissionMode; } | undefined>; waitForInitialization(): Promise; getSessionIdentity(): SessionIdentity; getSessionMetadata(): SessionMetadata; getQuery(): ProviderQuery; supportedCommands(): Promise; supportedModels(): Promise; supportedAgents(): Promise; getContextUsage(): Promise; mcpServerStatus(): Promise; accountInfo(): Promise; rewindFiles(userMessageId: string, options?: { dryRun?: boolean; }): Promise; compact(): Promise; listRewindTargets(): RewindTarget[]; rewindConversation(turnIndex: number): Promise; private makePassthroughDeps; getLastResponseMetadata(): ResponseMetadata | null; getOutputStream(): AsyncIterable; queueFrameworkContext(text: string): void; getInputStreamRef(): Pick; getHistory(): readonly Message[]; getTurnCount(): number; close(): Promise; recordSubagentCompletion(usage?: { inputTokens?: number; outputTokens?: number; cacheReadTokens?: number; cacheCreationTokens?: number; }, costUsd?: number): void; pushSidebandEvent(event: OutputEvent): void; recordLedgerElicitation(reqId: string, request: ElicitationRequest): void; }