import { Logger } from '@nestjs/common'; import { AIProvider, AIQueryOptions, AIResponse } from './ai-provider.interface'; import { ToolCallService } from '../services/tool-call.service'; export declare abstract class BaseAIProvider implements AIProvider { abstract readonly name: 'claude' | 'gemini' | 'copilot'; protected readonly logger: Logger; protected toolCallService?: ToolCallService; private readonly logsDir; private cachedPath; protected readonly timeoutConfig: import("../config/timeout.config").TimeoutConfig; constructor(loggerContext: string); protected abstract getCliCommand(): string; protected abstract getDefaultArgs(): string[]; protected abstract getExecuteArgs(): string[]; protected abstract getNotInstalledMessage(): string; protected getPromptInArgs(): boolean; protected getDefaultQueryTimeout(): number; protected getDefaultExecuteTimeout(): number; protected setToolCallService(toolCallService: ToolCallService): void; protected parseToolUse(content: string): { isToolUse: boolean; toolName?: string; toolInput?: any; }; protected parseToolUseProviderSpecific(parsed: any): { isToolUse: boolean; toolName?: string; toolInput?: any; }; parseProviderError(stderr: string, stdout: string): { error: boolean; message: string; }; getToolPath(): Promise; protected wrapUserQueryWithSecurity(userQuery: string, securityKey: string): string; protected extractUserQuery(wrappedQuery: string, securityKey: string): string; isAvailable(): Promise; private createTaskLogFile; private appendTaskLog; query(prompt: string, options?: AIQueryOptions): Promise; execute(prompt: string, options?: AIQueryOptions): Promise; }