pub mod advanced_search;
pub mod auto_index;
pub mod autopilot;
pub mod batch_search;
pub mod compress;
pub mod consolidate;
pub mod decay;
pub mod distance;
pub mod distributed;
pub mod engine;
pub mod filter;
pub mod fulltext;
pub mod graph;
pub mod hnsw;
pub mod hybrid;
pub mod ivf;
pub mod ivfpq;
pub mod online_update;
pub mod persistence;
pub mod pq;
pub mod routing;
pub mod search;
pub mod simd_distance;
pub mod spfresh;
pub mod sq;

pub use auto_index::{
    AccuracyRequirement, AutoIndexSelector, DataCharacteristics, IndexParams, IndexRecommendation,
    IndexRequirements, LatencyRequirement, MemoryConstraint, RecommendedIndex,
};
pub use autopilot::{AutoPilotConfig, AutoPilotEngine, ConsolidationResult, DedupResult};
pub use batch_search::{
    AggregationType, BatchQueryConfig, BatchQueryExecutor, BatchQueryItemResponse,
    BatchQueryRequest, BatchQueryResponse, BatchQueryStats, BatchSearchError, BoostMode,
    CursorType, DecayType, DistanceUnit, FacetBucket, FacetExecutor, FacetRequest, FacetResult,
    FieldValueModifier, FilterExecutor, FilterExpression, GeoFilter, GeoFilterExecutor, GeoPoint,
    PaginationConfig, QueryExplainer, QueryExplanation, ScoreDetail, ScoreFunction,
    ScoreFunctionExecutor, ScoreMode, ScoringConfig, SearchCursor, SearchHit, SortField, SortOrder,
    SortValue,
};
pub use compress::{compress_memories, CompressResult};
pub use consolidate::{
    detect_near_duplicate, run_dbscan as run_dbscan_consolidation, ConsolidateResult,
    ConsolidationConfig, ConsolidationLogEntry,
};
pub use decay::{
    BackgroundMetrics, BackgroundMetricsInner, ConsolidationResultSnapshot, DecayEngine,
    DecayEngineConfig, DecayResult, DedupResultSnapshot,
};
pub use distance::calculate_distance;
pub use engine::SearchEngine;
pub use filter::evaluate_filter;
pub use fulltext::{FullTextConfig, FullTextResult, FullTextStats, InvertedIndex, TextAnalyzer};
pub use graph::{
    open_from_env as open_graph_from_env, EdgeType, GraphEdge, GraphExport, GraphNode,
    MemoryGraphEngine,
};
pub use hnsw::{HnswConfig, HnswIndex, HnswStats};
pub use hybrid::{adaptive_vector_weight, HybridConfig, HybridResult, HybridSearcher};
pub use ivf::{IvfConfig, IvfIndex, SearchResult as IvfSearchResult};
pub use ivfpq::{IvfPqConfig, IvfPqIndex, IvfPqSearchResult, IvfPqStats};
pub use online_update::{
    DeltaLog, MaintenanceResult, OnlineIndex, OnlineUpdatable, OnlineUpdateConfig,
    OnlineUpdateStats, UpdateBuffer,
};
pub use persistence::{
    HnswFullSnapshot, IndexPersistenceManager, IndexType, IvfFullSnapshot, Persistable,
    SerializableHnswNode, SpFreshFullSnapshot,
};
pub use pq::{PQConfig, PQIndex, PQSearchResult, ProductQuantizer};
pub use routing::{QueryClassifier, QueryKind, RouteMatch, SemanticRouter, SemanticRouterConfig};
pub use simd_distance::{
    simd_cosine_similarity, simd_distance, simd_dot_product, simd_negative_euclidean,
};
pub use spfresh::{SpFreshConfig, SpFreshIndex, SpFreshSearchResult, SpFreshStats};
pub use sq::{QuantizationType, SQConfig, SQIndex, SQSearchResult, SQStats};
