import { FirewallDesiredStateService } from './firewall-desired-state.service';
import { FirewallProviderFactory } from '../../../providers/services/firewall-provider.factory';
import { LabelService } from '../../../common/services/label.service';
import { ClusterFirewallEntity } from '../entities/cluster-firewall.entity';
import { FirewallRuleDto } from '../../../providers/dto/firewall.dto';
import { CloudProvider } from '../../../providers/enums/cloud-provider.enum';
export declare class FirewallReconciliationService {
    private readonly desiredStateService;
    private readonly firewallProviderFactory;
    private readonly labelService;
    private readonly logger;
    constructor(desiredStateService: FirewallDesiredStateService, firewallProviderFactory: FirewallProviderFactory, labelService: LabelService);
    /**
     * Update desired rules and apply them atomically.
     * If provider application fails, no changes are saved to the database.
     */
    updateAndApplyRules(firewallId: string, newRules: FirewallRuleDto[]): Promise<ClusterFirewallEntity>;
    /**
     * Reconcile firewall: create or update provider firewall to match desired state
     */
    reconcile(firewallId: string): Promise<ClusterFirewallEntity>;
    /**
     * Fetch actual state from provider and compare with desired state
     */
    fetchActualState(firewallId: string): Promise<FirewallRuleDto[]>;
    /**
     * Delete provider firewall
     */
    deleteProviderFirewall(firewallId: string): Promise<void>;
    /**
     * Cleanup orphaned provider firewalls by cluster ID
     * Used as fallback during cluster deletion
     */
    cleanupOrphanedFirewalls(clusterId: string, provider: CloudProvider): Promise<void>;
    /**
     * Generate firewall name with short ID
     */
    private generateFirewallName;
    /**
     * Generate standard labels for firewall
     */
    private generateFirewallLabels;
}
