/**
 * Capability Vector Service
 *
 * Vector-based storage and retrieval for resource capabilities
 * Extends BaseVectorService to provide capability-specific operations
 */
import { BaseVectorService, BaseSearchOptions, BaseSearchResult } from './base-vector-service';
import { EmbeddingService } from './embedding-service';
import { ResourceCapability, PrinterColumn } from './capabilities';
export type { ResourceCapability, PrinterColumn };
export interface CapabilitySearchOptions extends BaseSearchOptions {
    complexityFilter?: 'low' | 'medium' | 'high';
    providerFilter?: string[];
}
/**
 * Vector service for storing and searching resource capabilities
 */
export declare class CapabilityVectorService extends BaseVectorService<ResourceCapability> {
    constructor(collectionName?: string, embeddingService?: EmbeddingService);
    /**
     * Create searchable text from capability data for embedding generation
     */
    protected createSearchText(capability: ResourceCapability): string;
    /**
     * Extract unique ID from capability data
     */
    protected extractId(capability: ResourceCapability): string;
    /**
     * Convert capability to storage payload format
     */
    protected createPayload(capability: ResourceCapability): Record<string, unknown>;
    /**
     * Convert storage payload back to capability object
     */
    protected payloadToData(payload: Record<string, unknown>): ResourceCapability;
    /**
     * Store a capability in the vector database
     */
    storeCapability(capability: ResourceCapability): Promise<void>;
    /**
     * Search capabilities by user intent with optional filters
     */
    searchCapabilities(intent: string, options?: CapabilitySearchOptions): Promise<BaseSearchResult<ResourceCapability>[]>;
    /**
     * Get capability by ID
     * Used by MCP operations with IDs from list/search results
     */
    getCapability(id: string): Promise<ResourceCapability | null>;
    /**
     * Get capability by kind and apiVersion
     * Used for JSON format lookup from dashboard UI
     *
     * @param kind - Resource kind (e.g., "Deployment", "Cluster")
     * @param apiVersion - Full apiVersion (e.g., "apps/v1", "postgresql.cnpg.io/v1")
     * @returns Matching capability or null if not found
     */
    getCapabilityByKindApiVersion(kind: string, apiVersion: string): Promise<ResourceCapability | null>;
    /**
     * Delete capability by resource name
     */
    deleteCapability(resourceName: string): Promise<void>;
    /**
     * Delete capability by ID (for MCP tool interface)
     */
    deleteCapabilityById(id: string): Promise<void>;
    /**
     * Delete all capabilities efficiently by recreating collection
     */
    deleteAllCapabilities(): Promise<void>;
    /**
     * List all capabilities with optional pagination
     */
    getAllCapabilities(limit?: number): Promise<ResourceCapability[]>;
    /**
     * Get count of stored capabilities
     */
    getCapabilitiesCount(): Promise<number>;
}
//# sourceMappingURL=capability-vector-service.d.ts.map