export interface VectorCollection {
    id: string;
    name: string;
    description?: string;
    dimension: number;
    metricType: 'L2' | 'IP' | 'COSINE' | 'HAMMING' | 'JACCARD';
    indexType: 'FLAT' | 'IVF_FLAT' | 'IVF_SQ8' | 'IVF_PQ' | 'HNSW' | 'AUTOINDEX';
    schema: VectorSchema;
    stats: CollectionStats;
    status: 'active' | 'loading' | 'error' | 'inactive';
    createdAt: Date;
    updatedAt: Date;
}
export interface VectorSchema {
    fields: VectorField[];
    autoId: boolean;
    enableDynamicField: boolean;
}
export interface VectorField {
    id: string;
    name: string;
    dataType: 'int8' | 'int16' | 'int32' | 'int64' | 'float' | 'double' | 'varchar' | 'bool' | 'json' | 'floatVector' | 'binaryVector';
    isPrimaryKey?: boolean;
    isVectorField?: boolean;
    dimension?: number;
    maxLength?: number;
    description?: string;
    nullable?: boolean;
    defaultValue?: string | number | boolean;
}
export interface CollectionStats {
    entityCount: number;
    size: number;
    indexedPercentage: number;
    queryLatency: number;
    insertLatency: number;
    memoryUsage: number;
    diskUsage: number;
}
export interface VectorSearchQuery {
    collectionName: string;
    vectorField: string;
    vectors: number[][];
    topK: number;
    metricType?: string;
    params?: Record<string, any>;
    filter?: string;
    outputFields?: string[];
    roundDecimal?: number;
}
export interface VectorSearchResult {
    id: string;
    score: number;
    entity: Record<string, any>;
    distance?: number;
}
export interface VectorSearchResponse {
    results: VectorSearchResult[][];
    latency: number;
    totalHits: number;
    queryId: string;
}
export interface VectorImportConfig {
    format: 'json' | 'csv' | 'parquet' | 'npy';
    delimiter?: string;
    vectorField: string;
    idField?: string;
    batchSize: number;
    skipHeader?: boolean;
    encoding?: string;
    mapping: Record<string, string>;
}
export interface VectorImportProgress {
    id: string;
    status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
    progress: number;
    processedRows: number;
    totalRows: number;
    errors: string[];
    startTime: Date;
    endTime?: Date;
    estimatedTimeRemaining?: number;
}
export interface VectorVisualizationConfig {
    reductionMethod: 'pca' | 'tsne' | 'umap';
    dimensions: 2 | 3;
    colorBy?: string;
    sizeBy?: string;
    filterBy?: Record<string, any>;
    sampleSize?: number;
}
export interface VectorCluster {
    id: string;
    centroid: number[];
    size: number;
    label?: string;
    color: string;
}
export interface ConnectionConfig {
    host: string;
    port: number;
    username?: string;
    password?: string;
    database?: string;
    secure?: boolean;
    timeout?: number;
}
export interface MilvusConnectionStatus {
    connected: boolean;
    version?: string;
    health: 'healthy' | 'unhealthy' | 'unknown';
    latency?: number;
    error?: string;
}
export interface VectorOperation {
    id: string;
    type: 'insert' | 'update' | 'delete' | 'search' | 'index' | 'compact';
    collectionName: string;
    status: 'pending' | 'running' | 'completed' | 'failed';
    progress?: number;
    startTime: Date;
    endTime?: Date;
    error?: string;
    result?: any;
}
export interface IndexConfig {
    indexType: string;
    metricType: string;
    params: Record<string, any>;
}
export interface PartitionInfo {
    name: string;
    description?: string;
    entityCount: number;
    createdAt: Date;
}
export interface VectorDashboardMetrics {
    totalCollections: number;
    totalVectors: number;
    totalQueries: number;
    avgQueryLatency: number;
    memoryUsage: number;
    diskUsage: number;
    activeConnections: number;
    systemHealth: 'healthy' | 'warning' | 'critical';
    recentOperations: VectorOperation[];
}
//# sourceMappingURL=vector.types.d.ts.map