import { BaseLLM, ChatParams, ChatResult, ClassifyParams, ClassifyResult, SummarizeParams, SummarizeResult } from '@memberjunction/ai'; import { SettingsResponse } from '../generic/BettyBot.types.js'; export declare class BettyBotLLM extends BaseLLM { private APIKey; private JWTToken; private TokenExpiration; constructor(apiKey: string); /** * Betty Bot doesn't support streaming */ get SupportsStreaming(): boolean; /** * Determines whether an error (or the current state of the signal) represents a caller-initiated * cancellation rather than a genuine API failure. Axios rejects with a CanceledError when the * request config carries a signal that aborts. */ private isCancellation; /** * Builds the ChatResult returned when a request is cancelled through ChatParams.cancellationToken * (caller abort or AIPromptRunner timeout). Marked Fatal / non-failover so no layer retries a request * the caller explicitly gave up on. */ private buildCancelledResult; /** * Implementation of non-streaming chat completion for Betty Bot */ protected nonStreamingChatCompletion(params: ChatParams): Promise; /** * Since BettyBot doesn't support streaming, we don't implement these methods. * They should never be called because SupportsStreaming returns false. */ protected createStreamingRequest(params: ChatParams): Promise; protected processStreamingChunk(chunk: any): { content: string; finishReason?: string | undefined; usage?: any | null; }; protected finalizeStreamingResponse(accumulatedContent: string | null | undefined, lastChunk: any | null | undefined, usage: any | null | undefined): ChatResult; SummarizeText(params: SummarizeParams): Promise; ClassifyText(params: ClassifyParams): Promise; /** * Retrieves (and caches) the Betty Bot JWT used to authorize chat requests. * @param forceRefresh when true, bypasses the cached token * @param cancellationToken optional signal that aborts the underlying HTTP request */ GetJWTToken(forceRefresh?: boolean, cancellationToken?: AbortSignal): Promise; } //# sourceMappingURL=BettyBotLLM.d.ts.map