import { FirewallRuleDto } from '../../../providers/dto/firewall.dto';
import { ReconciliationStatus } from '../entities/cluster-firewall.entity';
import { ClusterStatus } from '../../clusters/entities/cluster.entity';
import { NodeStatus, NodeType } from '../../clusters/entities/cluster-node.entity';
export declare enum FirewallCoverageStatus {
    FULL = "FULL",
    PARTIAL = "PARTIAL",
    ORPHANED = "ORPHANED",
    UNKNOWN = "UNKNOWN"
}
export declare class FirewallNodeInfoDto {
    nodeId: string;
    serverName: string;
    nodeType: NodeType;
    status: NodeStatus;
    ipAddress?: string;
}
export declare class FirewallClusterInfoDto {
    clusterName: string;
    clusterStatus: ClusterStatus;
    totalNodes: number;
    readyNodes: number;
    nodes: FirewallNodeInfoDto[];
}
export declare class CreateClusterFirewallDto {
    clusterId: string;
    desiredRules: FirewallRuleDto[];
}
export declare class UpdateFirewallRulesDto {
    desiredRules: FirewallRuleDto[];
}
export declare class FirewallResponseDto {
    id: string;
    clusterId: string;
    providerFirewallId?: string;
    desiredRules: FirewallRuleDto[];
    lastAppliedRules?: FirewallRuleDto[];
    desiredHash?: string;
    lastAppliedHash?: string;
    reconciliationStatus: ReconciliationStatus;
    hasDrift: boolean;
    lastReconciliationAt?: Date;
    errorMessage?: string;
    metadata?: Record<string, any>;
    coverageStatus: FirewallCoverageStatus;
    clusterInfo?: FirewallClusterInfoDto;
    createdAt: Date;
    updatedAt: Date;
    constructor(partial: Partial<FirewallResponseDto>);
}
export declare class ReconciliationStatusDto {
    status: ReconciliationStatus;
    hasDrift: boolean;
    lastReconciliationAt?: Date;
    errorMessage?: string;
    desiredHash?: string;
    lastAppliedHash?: string;
}
export declare class ListFirewallsQueryDto {
    clusterId?: string;
    status?: ReconciliationStatus;
}
