Skip to Content

TypeScript Types

The Endee TypeScript SDK includes comprehensive type definitions for full type safety and excellent IDE support.

Importing Types

import type { VectorItem, QueryOptions, QueryResult, CreateIndexOptions, IndexInfo, IndexDescription, SpaceType } from "endee";

Type Definitions

SpaceType

Distance metric used for similarity calculations.

type SpaceType = "cosine" | "l2" | "ip";
ValueDescription
cosineCosine similarity (recommended for text embeddings)
l2Euclidean distance
ipInner product (dot product)

CreateIndexOptions

Options for creating a new index.

interface CreateIndexOptions { name: string; // Unique index name dimension: number; // Vector dimensionality spaceType?: SpaceType; // Distance metric (default: cosine) M?: number; // Graph connectivity (default: 16) efCon?: number; // Construction parameter (default: 128) useFp16?: boolean; // Half-precision storage (default: true) version?: number; // Index version }

VectorItem

Structure for upserting vectors.

interface VectorItem { id: string; // Unique vector ID vector: number[]; // Vector embedding meta?: Record<string, unknown>; // Optional metadata filter?: Record<string, unknown>; // Optional filter fields }

QueryOptions

Options for querying the index.

interface QueryOptions { vector: number[]; // Query vector topK?: number; // Number of results filter?: Record<string, unknown> | null; // Optional filter ef?: number; // Search quality parameter includeVectors?: boolean; // Include vectors in results log?: boolean; // Enable logging }

QueryResult

Structure of query results.

interface QueryResult { id: string; // Vector ID similarity: number; // Similarity score distance: number; // Distance value meta?: Record<string, unknown>; // Metadata (if stored) filter?: Record<string, unknown>; // Filter fields (if stored) norm?: number; // Vector norm vector?: number[]; // Vector data (if includeVectors=true) }

IndexInfo

Index information returned when listing indexes.

interface IndexInfo { name: string; // Index name space_type: SpaceType; // Distance metric dimension: number; // Vector dimension total_elements?: number; // Total number of vectors use_fp16?: boolean; // Half-precision enabled M?: number; // Graph connectivity checksum?: string; // Index checksum lib_token?: string; // Library token }

IndexDescription

Index statistics and configuration from describe().

interface IndexDescription { name: string; // Index name space_type: SpaceType; // Distance metric dimension: number; // Vector dimension count: number; // Number of vectors stored precision: string; // Storage precision M: number; // Graph connectivity }

Usage Example

import { Endee } from "endee"; import type { VectorItem, QueryOptions, QueryResult } from "endee"; const endee = new Endee("user_id:api_token:region"); const index = await endee.getIndex("my_index"); // Typed vector item const vectors: VectorItem[] = [ { id: "doc1", vector: [0.1, 0.2, 0.3], meta: { title: "Document 1" }, filter: { category: "reference" } } ]; await index.upsert(vectors); // Typed query options const options: QueryOptions = { vector: [0.1, 0.2, 0.3], topK: 10, includeVectors: true }; // Typed results const results: QueryResult[] = await index.query(options); // Access result fields for (const result of results) { console.log(`ID: ${result.id}`); console.log(`Similarity: ${result.similarity}`); console.log(`Distance: ${result.distance}`); }