import { ProviderV2, LanguageModelV2 } from '@ai-sdk/provider';
import { FetchFunction } from '@ai-sdk/provider-utils';
export { OpenAICompatibleErrorData as DeepSeekErrorData } from '@ai-sdk/openai-compatible';

type DeepSeekChatModelId = 'deepseek-chat' | 'deepseek-reasoner' | (string & {});

interface DeepSeekProviderSettings {
    /**
  DeepSeek API key.
  */
    apiKey?: string;
    /**
  Base URL for the API calls.
  */
    baseURL?: string;
    /**
  Custom headers to include in the requests.
  */
    headers?: Record<string, string>;
    /**
  Custom fetch implementation. You can use it as a middleware to intercept requests,
  or to provide a custom fetch implementation for e.g. testing.
  */
    fetch?: FetchFunction;
}
interface DeepSeekProvider extends ProviderV2 {
    /**
  Creates a DeepSeek model for text generation.
  */
    (modelId: DeepSeekChatModelId): LanguageModelV2;
    /**
  Creates a DeepSeek model for text generation.
  */
    languageModel(modelId: DeepSeekChatModelId): LanguageModelV2;
    /**
  Creates a DeepSeek chat model for text generation.
  */
    chat(modelId: DeepSeekChatModelId): LanguageModelV2;
}
declare function createDeepSeek(options?: DeepSeekProviderSettings): DeepSeekProvider;
declare const deepseek: DeepSeekProvider;

export { type DeepSeekProvider, type DeepSeekProviderSettings, createDeepSeek, deepseek };
