import type { EmbeddingModel as EmbeddingModelV1, ProviderOptions as ProviderOptionsV1, TelemetrySettings as TelemetrySettingsV1 } from '../_types/@internal_ai-sdk-v4/dist/index.js'; import type { EmbeddingModel, TelemetrySettings as TelemetrySettingsV5, ProviderOptions as ProviderOptionsV5 } from '../_types/@internal_ai-sdk-v5/dist/index.js'; type EmbeddingModelV2 = Exclude, string>; import type { EmbeddingModelV3, TelemetrySettings as TelemetrySettingsV6, ProviderOptions as ProviderOptionsV6 } from '@internal/ai-v6'; import { MastraBase } from '../base.js'; import type { VectorFilter } from './filter/index.js'; import type { CreateIndexParams, UpsertVectorParams, QueryVectorParams, IndexStats, QueryResult, UpdateVectorParams, DeleteVectorParams, DeleteVectorsParams, DescribeIndexParams, DeleteIndexParams } from './types.js'; /** Legacy embedding model (V1) - use embedV1 function */ export type MastraLegacyEmbeddingModel = EmbeddingModelV1; /** Modern embedding model (V2/V3) - use embedV2 for V2 models, embedV3 for V3 models */ export type MastraSupportedEmbeddingModel = EmbeddingModelV2 | EmbeddingModelV3; /** All supported embedding model types */ export type MastraEmbeddingModel = MastraLegacyEmbeddingModel | MastraSupportedEmbeddingModel; export type MastraEmbeddingOptions = { maxRetries?: number; headers?: Record; /** * Optional telemetry configuration (experimental). */ telemetry?: TelemetrySettingsV1 | TelemetrySettingsV5 | TelemetrySettingsV6; providerOptions?: ProviderOptionsV1 | ProviderOptionsV5 | ProviderOptionsV6; maxParallelCalls?: number; }; /** Specification versions for supported (modern) embedding models */ export declare const supportedEmbeddingModelSpecifications: readonly ["v2", "v3"]; /** * Type guard to check if an embedding model is a supported modern version (V2 or V3). * Use embedV2 for V2 models, embedV3 for V3 models, and embedV1 for legacy V1 models. */ export declare const isSupportedEmbeddingModel: (model: MastraEmbeddingModel) => model is MastraSupportedEmbeddingModel; export declare abstract class MastraVector extends MastraBase { id: string; constructor({ id }: { id: string; }); get indexSeparator(): string; abstract query(params: QueryVectorParams): Promise; abstract upsert(params: UpsertVectorParams): Promise; abstract createIndex(params: CreateIndexParams): Promise; abstract listIndexes(): Promise; abstract describeIndex(params: DescribeIndexParams): Promise; abstract deleteIndex(params: DeleteIndexParams): Promise; abstract updateVector(params: UpdateVectorParams): Promise; abstract deleteVector(params: DeleteVectorParams): Promise; /** * Delete multiple vectors by IDs or metadata filter. * * This enables bulk deletion and source-based vector management. * Implementations should throw MastraError with appropriate error code * if the operation is not supported. * * @param params - Parameters including indexName and either ids or filter (mutually exclusive) * @throws {MastraError} If operation is not supported or parameters are invalid * * @example * ```ts * // Delete all chunks from a document * await vectorStore.deleteVectors({ * indexName: 'docs', * filter: { source_id: 'manual.pdf' } * }); * * // Delete multiple vectors by ID * await vectorStore.deleteVectors({ * indexName: 'docs', * ids: ['vec_1', 'vec_2', 'vec_3'] * }); * * // Delete old temporary documents * await vectorStore.deleteVectors({ * indexName: 'docs', * filter: { * $and: [ * { bucket: 'temp' }, * { indexed_at: { $lt: '2025-01-01' } } * ] * } * }); * ``` */ abstract deleteVectors(params: DeleteVectorsParams): Promise; protected validateExistingIndex(indexName: string, dimension: number, metric: string): Promise; } export {}; //# sourceMappingURL=vector.d.ts.map