import { MastraBase } from '../base';
import type { VectorFilter } from './filter';
import type { CreateIndexParams, UpsertVectorParams, QueryVectorParams, IndexStats, QueryResult, UpdateVectorParams, DeleteVectorParams, DescribeIndexParams, DeleteIndexParams } from './types';
export declare abstract class MastraVector<Filter = VectorFilter> extends MastraBase {
    constructor();
    get indexSeparator(): string;
    abstract query(params: QueryVectorParams<Filter>): Promise<QueryResult[]>;
    abstract upsert(params: UpsertVectorParams): Promise<string[]>;
    abstract createIndex(params: CreateIndexParams): Promise<void>;
    abstract listIndexes(): Promise<string[]>;
    abstract describeIndex(params: DescribeIndexParams): Promise<IndexStats>;
    abstract deleteIndex(params: DeleteIndexParams): Promise<void>;
    abstract updateVector(params: UpdateVectorParams): Promise<void>;
    abstract deleteVector(params: DeleteVectorParams): Promise<void>;
    protected validateExistingIndex(indexName: string, dimension: number, metric: string): Promise<void>;
}
//# sourceMappingURL=vector.d.ts.map