export { getModel, getModelSetup } from './smartai.classes.smartai.js';
export type {
  IOpenAiProviderOptions,
  IOpenAiChatGptAuthCredentials,
  IOpenAiChatGptAuthOptions,
  IOpenAiChatGptCompleteDeviceCodeOptions,
  IOpenAiChatGptDeviceCode,
  IOpenAiChatGptDeviceCodePollOptions,
  IOpenAiChatGptTokenData,
  IOpenAiChatGptTokenInfo,
  ISmartAiModelSetup,
  ISmartAiOptions,
  TOpenAiReasoningEffort,
  TOpenAiTextVerbosity,
  TProvider,
  TSmartAiProviderOptions,
  IOllamaModelOptions,
  LanguageModelV3,
  LanguageModelV3Prompt,
} from './smartai.interfaces.js';
export { createAnthropicCachingMiddleware } from './smartai.middleware.anthropic.js';
export {
  applySmartAiCacheProviderOptions,
  applySmartAiPromptCaching,
  createSmartAiCachingMiddleware,
  getSmartAiCacheProviderOptions,
  getSmartAiMessageCacheProviderOptions,
  mergeSmartAiProviderOptions,
  resolveSmartAiCacheProvider,
} from './smartai.cache.js';
export type {
  ISmartAiCacheOptions,
  TSmartAiCacheRetention,
  TSmartAiCacheSetting,
  TSmartAiMessageCacheProvider,
} from './smartai.cache.js';
export { createOllamaModel } from './smartai.provider.ollama.js';
export {
  OPENAI_CHATGPT_AUTH_ISSUER,
  OPENAI_CHATGPT_CLIENT_ID,
  OPENAI_CHATGPT_CODEX_BASE_URL,
  OPENAI_CHATGPT_DEFAULT_ORIGINATOR,
  OpenAiChatGptAuthError,
  completeOpenAiChatGptDeviceCodeLogin,
  createOpenAiChatGptProviderSettings,
  ensureOpenAiChatGptWorkspaceAllowed,
  exchangeOpenAiChatGptAuthorizationCode,
  parseOpenAiChatGptTokenInfo,
  pollOpenAiChatGptDeviceCode,
  refreshOpenAiChatGptTokenData,
  requestOpenAiChatGptDeviceCode,
} from './smartai.auth.openai.js';
export type { IOpenAiChatGptAuthorizationCode } from './smartai.auth.openai.js';

// Re-export commonly used ai-sdk functions for consumer convenience
export { generateText, streamText, tool, jsonSchema } from 'ai';
export type { ModelMessage, ToolSet, StreamTextResult } from 'ai';
