import type { AIProviderName } from "../constants/enums.js"; import type { NeurolinkCredentials } from "../types/index.js"; import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js"; /** * Cohere Provider — direct HTTP, no AI SDK. * * Routes Command R / Command R+ chat completions through Cohere's * OpenAI-compatible endpoint at /compatibility/v1. All request/stream/ * tool-loop orchestration lives in `OpenAIChatCompletionsProvider`; this * class only declares configuration and provider-specific error mapping. * * Embed v3 is exposed via `embed()` / `embedMany()` backed by a native * POST to /v2/embed (the compatibility path is chat-only). * * @see https://docs.cohere.com/docs/compatibility-api * @see https://docs.cohere.com/reference/embed */ export declare class CohereProvider extends OpenAIChatCompletionsProvider { constructor(modelName?: string, sdk?: unknown, _region?: string, credentials?: NeurolinkCredentials["cohere"]); protected getProviderName(): AIProviderName; protected getDefaultModel(): string; protected getFallbackModelName(): string; protected getFallbackModels(): string[]; protected formatProviderError(error: unknown): Error; validateConfiguration(): Promise; getConfiguration(): { provider: AIProviderName; model: string; defaultModel: string; baseURL: string; }; /** * Default embedding model for Cohere. */ protected getDefaultEmbeddingModel(): string; /** * Generate an embedding for a single text via Cohere's native /v2/embed * endpoint. Returns the float[] embedding vector. * * The shared OpenAI-compatible /compatibility/v1 path is chat-only; embed * lives on the native API (POST /v2/embed). Documented at * https://docs.cohere.com/reference/embed. */ embed(text: string, modelName?: string): Promise; /** * Batch embedding via Cohere's native /v2/embed endpoint. Cohere caps at * 96 inputs per request; larger batches are chunked. * * Partial failures are not surfaced: if any chunk request fails the whole * call rejects and already-embedded chunks are discarded — callers should * retry the full input. */ embedMany(texts: string[], modelName?: string): Promise; }