import { CancellationToken, ILogger, PreferenceService } from '@theia/core'; import { OutputChannel, OutputChannelManager } from '@theia/output/lib/browser/output-channel'; import { WorkspaceService } from '@theia/workspace/lib/browser'; import { ClaudeCodeClient, ClaudeCodeRequest, ClaudeCodeService, StreamMessage, ToolApprovalResponseMessage } from '../common/claude-code-service'; export declare class ClaudeCodeClientImpl implements ClaudeCodeClient { protected tokenHandlers: Map void>; protected errorHandlers: Map void>; sendToken(streamId: string, token?: StreamMessage): void; sendError(streamId: string, error: Error): void; registerTokenHandler(streamId: string, handler: (token?: StreamMessage) => void): void; registerErrorHandler(streamId: string, handler: (error: Error) => void): void; unregisterHandlers(streamId: string): void; } interface StreamState { id: string; tokens: (StreamMessage | undefined)[]; isComplete: boolean; hasError: boolean; error?: Error; pendingResolve?: () => void; pendingReject?: (error: Error) => void; } export declare class ClaudeCodeFrontendService { protected claudeCodeBackendService: ClaudeCodeService; protected client: ClaudeCodeClientImpl; protected readonly workspaceService: WorkspaceService; protected preferenceService: PreferenceService; protected readonly outputChannelManager: OutputChannelManager; protected logger: ILogger; protected streams: Map; send(request: ClaudeCodeRequest, cancellationToken?: CancellationToken): Promise>; protected generateStreamId(): string; protected setupStreamHandlers(streamState: StreamState): void; protected createAsyncIterable(streamState: StreamState): AsyncIterable; sendApprovalResponse(response: ToolApprovalResponseMessage): void; protected getOutputChannel(): OutputChannel | undefined; } export {}; //# sourceMappingURL=claude-code-frontend-service.d.ts.map