import { ClaudeCodeBackendRequest, ClaudeCodeClient, ClaudeCodeService, ToolApprovalResponseMessage } from '../common/claude-code-service'; export declare class ClaudeCodeServiceImpl implements ClaudeCodeService { private logger; private client; private abortControllers; private pendingApprovals; protected readonly autoApprovedTools: Set; setClient(client: ClaudeCodeClient): void; send(request: ClaudeCodeBackendRequest, streamId: string): Promise; protected isApiKeyError(message: unknown): boolean; protected sendMessages(streamId: string, request: ClaudeCodeBackendRequest): Promise; /** * Dynamically imports the Claude Code SDK from the local installation. * @param customClaudeCodePath Optional custom path to Claude Code executable (cli.js) * @returns An object containing the SDK's query function, user message type, and options type. */ protected importClaudeCodeSDK(customClaudeCodePath?: string): Promise<{ query: unknown; SDKUserMessage: unknown; Options: unknown; }>; protected resolveClaudeCodePath(): string; cancel(streamId: string): void; handleApprovalResponse(response: ToolApprovalResponseMessage): void; protected requestToolApproval(streamId: string, toolName: string, toolInput: unknown): Promise<{ behavior: 'allow' | 'deny'; message?: string; updatedInput?: unknown; }>; protected ensureStopHook(cwd: string): Promise; protected ensureFileBackupHook(cwd: string): Promise; private ensureClaudeSettings; } //# sourceMappingURL=claude-code-service-impl.d.ts.map