pub mod facenet;

// Re-export common types and traits
pub use facenet::FaceNetEmbedder;
pub use facenet::{FaceEmbedding, FaceEmbeddingConfig, IntoEmbeddings};

// Convenience type aliases for different backends
pub use facenet::mnn::EmbeddingGenerator as MnnEmbeddingGenerator;
pub use facenet::ort::EmbeddingGenerator as OrtEmbeddingGenerator;

use crate::errors::*;
use ndarray::{Array2, ArrayView4};

/// Common trait for face embedding backends - maintained for backward compatibility
pub trait FaceEmbedder {
    /// Generate embeddings for a batch of face images
    fn run_models(&mut self, faces: ArrayView4<u8>) -> Result<Array2<f32>>;
}
