/**
 * embedding/index.ts - re-exports for the embedding provider abstraction.
 */

export {
  type EmbeddingProvider,
  type ProviderKind,
  type ProviderEmbedding,
  type ProviderEmbedOptions,
  type ProviderHealth,
  ModelMismatchError,
  assertModelCompatible,
} from "./provider.js";

export {
  LocalLlamaCppProvider,
  type LocalLlamaCppProviderConfig,
} from "./local.js";

export {
  OpenAIEmbeddingsProvider,
  CircuitBreaker,
  CircuitOpenError,
  HttpError,
  isRetryableStatus,
  chunkArray,
  type OpenAIProviderConfig,
  type CircuitState,
  DEFAULT_BATCH_SIZE,
  DEFAULT_TIMEOUT_MS,
  RETRY_BACKOFFS_MS,
} from "./openai.js";

export {
  createEmbeddingProvider,
  resolveProviderKind,
  assertCommercialEndpoint,
  loadConfigFile,
  defaultConfigPath,
  type CreateEmbeddingProviderOptions,
  type EmbedProviderConfigFile,
} from "./factory.js";

export {
  AutoFallbackEmbeddingProvider,
  type AutoFallbackProviderConfig,
  type FallbackState,
} from "./autofallback.js";
