import { type LLMAssistInNewChatOptions, type LLMAssistanceOptions, type LLMAssistanceResult, type LLMAssistanceMessage, type LLMToolDefinition, type LLMCreateChatOptions, type LLMCreateChatResult, type LLMCreateFileStorageOptions, type LLMCreateFileStorageResult, type LLMInstanceOptions, type LLMModel, type LLMProviders, LLMPurposes, type LLMUploadFileOptions, type LLMUploadFileResult, type LLMStructuredResult, type LLMUploadedFile, type LLMTerminalToolOutcome, LLMToolLoopStopReasons } from '../LLMService.typedefs'; import { type LLMLoggerInterface } from '../utilities/logger'; import { type LLMReporterInterface } from '../utilities/reporter'; import { LLMBaseService } from '../services'; import { type LLMSchemaInterface, type InferSchema } from '../utilities/schema'; export declare abstract class LLMAssistanceService | undefined> extends LLMBaseService { constructor(provider: Provider, logger: LLMLoggerInterface | undefined, reporter: Reporter, options?: LLMInstanceOptions[Provider]); /** * Classifies why a tool loop stopped. A terminal tool outranks exhaustion: * the loop broke on purpose before the iteration budget mattered. */ protected resolveToolLoopStopReason(params: { terminalTool: LLMTerminalToolOutcome | undefined; toolIterationsExhausted: boolean; }): LLMToolLoopStopReasons; protected validateToolDefinitions(tools: LLMToolDefinition[]): void; abstract uploadFile(options: LLMUploadFileOptions): Promise; abstract getFile(path: string): Promise; abstract deleteFile(fileId: string): Promise; abstract createFileStorage(options: LLMCreateFileStorageOptions): Promise; abstract deleteFileStorage(fileStorageId: string): Promise; abstract createChat(options: LLMCreateChatOptions): Promise; abstract deleteChat(chatId: string): Promise; assistInChat(options: LLMAssistanceOptions & { schema: Schema; }): Promise>>; assistInChat(options: LLMAssistanceOptions): Promise; private runAgentObservation; private getAssistanceFailure; protected abstract assistInChatText(options: LLMAssistanceOptions): Promise; protected abstract assistInChatStructured(options: LLMAssistanceOptions & { schema: LLMSchemaInterface; }): Promise; assistInNewChat(options: LLMAssistInNewChatOptions & { schema: Schema; }): Promise>>; assistInNewChat(options: LLMAssistInNewChatOptions): Promise; abstract countTokens(messages: LLMAssistanceMessage[], model: LLMModel): Promise; }