/**
 * Core Policy Operations
 *
 * Handles policy intent management operations including CRUD operations
 * and Kyverno cluster policy cleanup
 */
import { Logger } from './error-handling';
import { PolicyVectorService } from './policy-vector-service';
/**
 * Kyverno policy metadata
 */
interface KyvernoPolicyInfo {
    name: string;
    labels?: Record<string, string>;
    creationTimestamp?: string;
}
/**
 * Kyverno delete result
 */
interface KyvernoDeleteResult {
    successful: Array<{
        policyId?: string;
        deletedAt: string;
    }>;
    failed: Array<{
        policyId?: string;
        error: string;
    }>;
    total: number;
}
/**
 * Policy operation result
 */
interface PolicyOperationResult {
    success: boolean;
    operation?: string;
    dataType?: string;
    message?: string;
    error?: string;
    data?: unknown;
    deletedKyvernoPolicies?: KyvernoDeleteResult;
    requiresConfirmation?: boolean;
    confirmationMessage?: string;
    confirmation?: string | {
        question: string;
        options: string[];
    };
    note?: string;
    deletedPolicyIntent?: {
        id: string;
        description: string;
    };
    deletedPolicyIntents?: unknown[];
    deletedCount?: number;
    workflow?: unknown;
    storage?: unknown;
    policyIntents?: unknown[];
    policyIntent?: unknown;
    totalCount?: number;
    searchResults?: unknown[];
    kyvernoCleanup?: unknown;
    kyvernoPolicies?: unknown;
}
/**
 * Policy delete arguments
 */
interface PolicyDeleteArgs {
    operation?: string;
    dataType?: string;
    id?: string;
    response?: string;
}
/**
 * Policy operation arguments
 */
interface PolicyOperationArgs {
    sessionId?: string;
    response?: string;
    id?: string;
    limit?: number;
    step?: string;
    [key: string]: unknown;
}
/**
 * Validation result from connection checks
 */
interface ValidationCheckResult {
    success: boolean;
    error?: string;
}
/**
 * Get initialized policy service
 */
export declare function getPolicyService(): Promise<PolicyVectorService>;
/**
 * Find Kyverno policies by policy intent ID using label selector
 * PRD #359: Uses unified plugin registry
 */
export declare function findKyvernoPoliciesByPolicyId(policyId: string, logger: Logger, requestId: string): Promise<KyvernoPolicyInfo[]>;
/**
 * Find all Kyverno policies that have policy-intent/id labels
 * PRD #359: Uses unified plugin registry
 */
export declare function findAllKyvernoPoliciesForPolicyIntents(logger: Logger, requestId: string): Promise<Array<KyvernoPolicyInfo & {
    policyId?: string;
}>>;
/**
 * Delete Kyverno policies by policy intent ID using label selector
 * PRD #359: Uses unified plugin registry
 */
export declare function deleteKyvernoPoliciesByPolicyId(policyId: string, logger: Logger, requestId: string): Promise<KyvernoDeleteResult>;
/**
 * Delete all Kyverno policies that have policy-intent/id labels
 * PRD #359: Uses unified plugin registry
 */
export declare function deleteAllKyvernoPoliciesForPolicyIntents(logger: Logger, requestId: string): Promise<KyvernoDeleteResult>;
/**
 * Handle individual policy delete with Kyverno cleanup
 * PRD #359: Uses unified plugin registry
 */
export declare function handlePolicyDelete(policyId: string, policyService: PolicyVectorService, args: PolicyDeleteArgs, logger: Logger, requestId: string): Promise<PolicyOperationResult>;
/**
 * Handle deleteAll policies with batch Kyverno cleanup
 * PRD #359: Uses unified plugin registry
 */
export declare function handlePolicyDeleteAll(policyService: PolicyVectorService, args: PolicyDeleteArgs & {
    response?: string;
}, logger: Logger, requestId: string): Promise<PolicyOperationResult>;
/**
 * Main policy operations handler - delegates to specific operation functions
 * Requires shared validation utilities to be passed as parameters to avoid circular imports
 * PRD #359: Uses unified plugin registry for kubectl operations
 */
export declare function handlePolicyOperation(operation: string, args: PolicyOperationArgs, logger: Logger, requestId: string, validateVectorDBConnection: (vectorService: PolicyVectorService, logger: Logger, requestId: string) => Promise<ValidationCheckResult>, validateEmbeddingService: (logger: Logger, requestId: string) => Promise<ValidationCheckResult>): Promise<PolicyOperationResult>;
export {};
//# sourceMappingURL=policy-operations.d.ts.map