import type { BashInput, FileEditInput, FileWriteInput, GlobInput, McpInput, WebFetchInput, WebSearchInput } from '@anthropic-ai/claude-agent-sdk/sdk-tools'; import type { PermissionResult, Options } from '@anthropic-ai/claude-agent-sdk'; import type { LoggerConfig } from './logger'; export declare enum ToolType { Read = "Read", Write = "Write", Edit = "Edit", Bash = "Bash", Grep = "Grep", Glob = "Glob", LS = "LS", MultiEdit = "MultiEdit", NotebookRead = "NotebookRead", NotebookEdit = "NotebookEdit", WebFetch = "WebFetch", TodoRead = "TodoRead", TodoWrite = "TodoWrite", WebSearch = "WebSearch", Task = "Task", MCPTool = "MCPTool" } export declare const ApprovableTools: readonly [ToolType.Write, ToolType.Edit, ToolType.Bash, ToolType.MultiEdit, ToolType.Glob, ToolType.WebSearch, ToolType.WebFetch, ToolType.Bash, ToolType.MCPTool]; type ApprovableTool = (typeof ApprovableTools)[number]; export declare function isApprovableTool(value: string): value is ApprovableTool; type ApprovableInputs = BashInput | FileEditInput | FileWriteInput | GlobInput | WebFetchInput | WebSearchInput | McpInput; export declare function isBashInput(value: unknown): value is BashInput; export declare function isFileEditInput(value: unknown): value is FileEditInput; export interface FileEditOperation { /** * The text to replace */ old_string: string; /** * The text to replace it with */ new_string: string; /** * Replace all occurrences of old_string (default false). */ replace_all?: boolean; } export declare function isFileWriteInput(value: unknown): value is FileWriteInput; export declare function isGlobInput(value: unknown): value is GlobInput; export declare function isWebFetchInput(value: unknown): value is WebFetchInput; export declare function isWebSearchInput(value: unknown): value is WebSearchInput; export declare function isMcpInput(value: unknown): value is McpInput; export type PermissionPayload = { toolName: ApprovableTool; input: ApprovableInputs; requestId: string; }; export interface TextBlock { type: 'text'; text: string; } export interface ToolUseBlock { type: 'tool_use'; id: string; name: string; input: Record; } export interface ToolResultBlock { type: 'tool_result'; tool_use_id: string; content: string | Array; is_error?: boolean; } export type ContentBlock = TextBlock | ToolUseBlock | ToolResultBlock; export interface UserMessage { type: 'user'; content: string; session_id?: string; } export interface ToolResultMessage { type: 'tool_result'; content: ToolResultBlock[] | string[]; session_id?: string; } export interface HookFeedbackMessage { type: 'hook_feedback'; content: string[]; session_id?: string; } export interface AssistantMessage { type: 'assistant'; content: ContentBlock[]; session_id?: string; } export interface SystemMessage { type: 'system'; subtype?: string; data?: unknown; session_id?: string; } export interface ResultMessage { type: 'result'; subtype?: string; content: string; session_id?: string; usage?: { input_tokens?: number; output_tokens?: number; cache_creation_input_tokens?: number; cache_read_input_tokens?: number; }; cost?: { input_cost?: number; output_cost?: number; cache_creation_cost?: number; cache_read_cost?: number; total_cost?: number; }; } export type Message = UserMessage | AssistantMessage | SystemMessage | ResultMessage | ToolResultMessage | HookFeedbackMessage; export interface WebSocket { send: (data: string) => void; readyState?: number; close?: () => void; } export interface WebSocketMessage { type: 'session-created' | 'claude-response' | 'claude-error' | 'claude-complete' | 'claude-output' | 'claude-interactive-prompt' | 'claude-status' | 'session-aborted' | 'cursor-system' | 'cursor-user' | 'cursor-tool-use' | 'cursor-error' | 'cursor-result' | 'cursor-output' | 'permission-request'; sessionId?: string; data?: Message | unknown; permissionPayload?: PermissionPayload; error?: string; exitCode?: number; isNewSession?: boolean; tool?: unknown; input?: string; } export type ClaudeCommandMessage = { type: 'claude-command'; command: string; options: Options; }; export type ClaudePermissionMessage = { type: 'permissions-response'; sessionId: string; requestId: string; result: PermissionResult; }; export type AbortSessionMessage = { type: 'abort-session'; sessionId: string; provider: string; }; export type OutgoingMessage = ClaudeCommandMessage | AbortSessionMessage | ClaudePermissionMessage; export declare const claudeChatType = "claude-chat"; export interface ClaudeliOptions extends Options { logging?: LoggerConfig; } export {}; //# sourceMappingURL=types.d.ts.map