/**
 * Resource Capability Discovery & Inference Engine
 *
 * PRD #48: Resource Capabilities Discovery & Integration
 *
 * This module provides capability inference for Kubernetes resources through
 * AI-powered analysis of schemas and metadata.
 */
import { Logger } from './error-handling';
import { AIProvider } from './ai-provider.interface';
/**
 * Printer column definition from Kubernetes Table API
 * Used for dynamic table column generation in UIs
 */
export interface PrinterColumn {
    name: string;
    type: string;
    jsonPath: string;
    description?: string;
    priority?: number;
}
/**
 * Complete resource capability data structure for Vector DB storage
 */
export interface ResourceCapability {
    resourceName: string;
    apiVersion?: string;
    version?: string;
    group?: string;
    capabilities: string[];
    providers: string[];
    abstractions: string[];
    complexity: 'low' | 'medium' | 'high';
    description: string;
    useCase: string;
    printerColumns?: PrinterColumn[];
    embedding?: number[];
    analyzedAt: string;
    confidence: number;
}
/**
 * Generic Capability Inference Engine
 *
 * Analyzes any Kubernetes CRD using AI to extract semantic capabilities
 * for improved AI recommendations and resource matching.
 */
export declare class CapabilityInferenceEngine {
    private logger;
    private aiProvider;
    constructor(aiProvider: AIProvider, logger: Logger);
    /**
     * Main entry point: analyze resource to infer complete capabilities
     *
     * @param resourceName - Full resource name (e.g., "resourcegroups.azure.upbound.io")
     * @param resourceDefinition - kubectl explain output for the resource
     * @param interaction_id - Optional interaction ID for tracing
     * @param apiVersion - Full apiVersion from kubectl (e.g., "apps/v1", "azure.upbound.io/v1beta1")
     * @param version - Just the version part (e.g., "v1beta1")
     * @param group - API group (e.g., "azure.upbound.io")
     * @throws Error if capability inference fails for any reason
     */
    inferCapabilities(resourceName: string, resourceDefinition?: string, interaction_id?: string, apiVersion?: string, version?: string, group?: string): Promise<ResourceCapability>;
    /**
     * Use AI to infer capabilities from all available resource context
     *
     * @throws Error if AI inference fails
     */
    private inferWithAI;
    /**
     * Build AI inference prompt using standard prompt loading pattern
     *
     * @throws Error if prompt template cannot be loaded
     */
    private buildInferencePrompt;
    /**
     * Parse AI response into structured capability data
     *
     * @throws Error if AI response cannot be parsed or is invalid
     */
    private parseCapabilitiesFromAI;
    /**
     * Build final ResourceCapability from AI analysis result
     */
    private buildResourceCapability;
    /**
     * Generate Vector DB ID for capability storage
     * Creates deterministic UUID from resource name for Qdrant compatibility
     */
    static generateCapabilityId(resourceName: string): string;
}
//# sourceMappingURL=capabilities.d.ts.map