import { Repository } from 'typeorm';
import { Queue } from 'bull';
import { ClusterEntity } from '../entities/cluster.entity';
import { InfrastructureOperationEntity } from '../../servers/entities/infrastructure-operations.entity';
import { ClusterFirewallIntegrationService } from './cluster-firewall-integration.service';
import { CloudProvider } from '../../../providers/enums/cloud-provider.enum';
import { GrafanaDatasourceService } from '../../../../modules/grafana/services/grafana-datasource.service';
import { ClusterDnsCleanupService } from '../../../../modules/dns/services/cluster-dns-cleanup.service';
/**
 * Service responsible for cluster deletion logic
 */
export declare class ClusterDeletionService {
    private readonly clusterRepository;
    private readonly operationRepository;
    private readonly infrastructureQueue;
    private readonly clusterFirewallIntegrationService;
    private readonly grafanaDatasourceService;
    private readonly clusterDnsCleanupService;
    private readonly logger;
    constructor(clusterRepository: Repository<ClusterEntity>, operationRepository: Repository<InfrastructureOperationEntity>, infrastructureQueue: Queue, clusterFirewallIntegrationService: ClusterFirewallIntegrationService, grafanaDatasourceService: GrafanaDatasourceService, clusterDnsCleanupService: ClusterDnsCleanupService);
    /**
     * Delete a cluster
     */
    deleteCluster(clusterId: string, force?: boolean): Promise<InfrastructureOperationEntity>;
    /**
     * Cleanup cluster firewall during deletion
     * Called from the queue processor after nodes are deleted
     */
    cleanupClusterFirewall(clusterId: string, provider: CloudProvider): Promise<void>;
    cleanupClusterDnsRecords(clusterId: string): Promise<void>;
    /**
     * Remove workload cluster datasources from Grafana observability cluster
     * Called automatically before cluster deletion
     */
    private removeClusterFromGrafana;
}
