import { LLMPurposes, type LLMProviders, type LLMCompletionMessage, type LLMSendMessageOptions, type LLMCompletionResult, type LLMInstanceOptions, type LLMModel, type LLMStructuredResult } 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 LLMCompletionService | undefined> extends LLMBaseService { constructor(provider: Provider, logger: LLMLoggerInterface | undefined, reporter: Reporter, options?: LLMInstanceOptions[Provider]); abstract sendMessage(options: LLMSendMessageOptions & { schema: Schema; }): Promise>>; abstract sendMessage(options: LLMSendMessageOptions): Promise; abstract sendMessage(options: LLMSendMessageOptions & { schema?: LLMSchemaInterface; }): Promise; abstract countTokens(messages: LLMCompletionMessage[], model: LLMModel): Promise; }