// NATIVE-ONLY embedding engine stub. On-device sentence embeddings on native
// (a transformers/onnxruntime-react-native or whisper.rn-style binding) are a
// follow-up; until then this is a type-correct placeholder that throws clearly
// so the rest of the app stays platform-agnostic and never silently mis-embeds.
//
// Selected by Metro at build time for native targets; never imported by tests.

import type { EmbeddingEngine } from './engine';
import { EMBED_DIM } from './engine';

const NOT_AVAILABLE = 'On-device embeddings are not available on native yet';

export const engine: EmbeddingEngine = {
  platform: 'native',
  dim: EMBED_DIM,

  isLoaded(): boolean {
    return false;
  },

  async loadModel(): Promise<void> {
    throw new Error(NOT_AVAILABLE);
  },

  async embed(): Promise<Float32Array[]> {
    throw new Error(NOT_AVAILABLE);
  },
};
