import { Repository } from 'typeorm';
import { ClusterEntity } from '../entities/cluster.entity';
import { ClusterNodeEntity } from '../entities/cluster-node.entity';
import { EncryptionService } from '../../../shared/encryption/services/encryption.service';
import { ClusterMapperService } from './cluster-mapper.service';
import { ClusterResponseDto } from '../dto/cluster-response.dto';
import { RegisterClusterDto, RegisterClusterResponseDto } from '../dto/register-cluster.dto';
import { ProviderFactory } from '../../../providers/services/provider.factory';
import { LabelService } from '../../shared/services/label.service';
/**
 * Service for additional cluster operations
 * (kubeconfig, nodes, metadata updates, registration, etc.)
 */
export declare class ClusterOperationsService {
    private readonly clusterRepository;
    private readonly nodeRepository;
    private readonly encryptionService;
    private readonly clusterMapperService;
    private readonly providerFactory;
    private readonly labelService;
    private readonly logger;
    constructor(clusterRepository: Repository<ClusterEntity>, nodeRepository: Repository<ClusterNodeEntity>, encryptionService: EncryptionService, clusterMapperService: ClusterMapperService, providerFactory: ProviderFactory, labelService: LabelService);
    /**
     * Register an existing externally-managed cluster
     */
    registerCluster(dto: RegisterClusterDto): Promise<RegisterClusterResponseDto>;
    getKubeconfig(clusterId: string): Promise<string>;
    getClusterNodes(clusterId: string): Promise<ClusterNodeEntity[]>;
    updateClusterMetadata(clusterId: string, metadata: Record<string, any>): Promise<ClusterResponseDto>;
    updateNodeMetadata(clusterId: string, nodeId: string, metadata: Record<string, any>): Promise<ClusterNodeEntity>;
    reconcileClusterTags(clusterId: string, force: boolean, includeFirewalls: boolean): Promise<any>;
    reconcileClusterFirewalls(clusterId: string, options: {
        force: boolean;
        autoMatchTemplates: boolean;
    }): Promise<any>;
    private tagClusterServer;
}
