/**
 * The RoutingPolicyProjection model module.
 * @module Ntnx/RoutingPolicyProjection
 * @version 4.0.1
 * @class RoutingPolicyProjection
 * @extends RoutingPolicy
 *
 * @param { string } name Name of the routing policy.
 *
 * @param { Number } priority Priority of the routing policy.
 *
 * @param { RoutingPolicyRule[] } policies
 *
 * @param { string } vpcExtId ExtId of the VPC extId to which the routing policy belongs.
 */
export default class RoutingPolicyProjection extends RoutingPolicy {
    /**
     * @return {VpcNameProjection}
     */
    getVpcNameProjection(): VpcNameProjection;
    /**
     * @param {VpcNameProjection} vpcNameProjection
     */
    setVpcNameProjection(vpcNameProjection: VpcNameProjection): void;
    vpcNameProjection: VpcNameProjection;
    toJson(forMutation: any): {
        $reserved: any;
        $objectType: string;
        $unknownFields: any;
        tenantId?: string;
        links?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            rel?: string;
            href?: string;
        }[];
        extId?: string;
        metadata?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            categoryIds?: string[];
            projectName?: string;
            projectReferenceId?: string;
            ownerUserName?: string;
            ownerReferenceId?: string;
        };
        vpc?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            name?: string;
        };
        vpcExtId?: string;
        policies?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            isBidirectional?: boolean;
            policyAction?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                nexthopIpAddress?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    ipv6?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                    ipv4?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                };
                rerouteParams?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    egressServiceIp?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        ipv6?: {
                            $reserved: any;
                            $objectType: string;
                            $unknownFields: any;
                            prefixLength?: number;
                            value?: string;
                        };
                        ipv4?: {
                            $reserved: any;
                            $objectType: string;
                            $unknownFields: any;
                            prefixLength?: number;
                            value?: string;
                        };
                    };
                    ingressServiceIp?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        ipv6?: {
                            $reserved: any;
                            $objectType: string;
                            $unknownFields: any;
                            prefixLength?: number;
                            value?: string;
                        };
                        ipv4?: {
                            $reserved: any;
                            $objectType: string;
                            $unknownFields: any;
                            prefixLength?: number;
                            value?: string;
                        };
                    };
                    rerouteFallbackAction?: string;
                    serviceIp?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        ipv6?: {
                            $reserved: any;
                            $objectType: string;
                            $unknownFields: any;
                            prefixLength?: number;
                            value?: string;
                        };
                        ipv4?: {
                            $reserved: any;
                            $objectType: string;
                            $unknownFields: any;
                            prefixLength?: number;
                            value?: string;
                        };
                    };
                }[];
                actionType?: string;
            };
            policyMatch?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                protocolParameters?: any;
                protocolType?: string;
                destination?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    subnetPrefix?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        ipv6?: {
                            $reserved: any;
                            $objectType: string;
                            $unknownFields: any;
                            prefixLength?: number;
                            ip?: {
                                $reserved: any;
                                $objectType: string;
                                $unknownFields: any;
                                prefixLength?: number;
                                value?: string;
                            };
                        };
                        ipv4?: {
                            $reserved: any;
                            $objectType: string;
                            $unknownFields: any;
                            prefixLength?: number;
                            ip?: {
                                $reserved: any;
                                $objectType: string;
                                $unknownFields: any;
                                prefixLength?: number;
                                value?: string;
                            };
                        };
                    };
                    addressType?: string;
                };
                source?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    subnetPrefix?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        ipv6?: {
                            $reserved: any;
                            $objectType: string;
                            $unknownFields: any;
                            prefixLength?: number;
                            ip?: {
                                $reserved: any;
                                $objectType: string;
                                $unknownFields: any;
                                prefixLength?: number;
                                value?: string;
                            };
                        };
                        ipv4?: {
                            $reserved: any;
                            $objectType: string;
                            $unknownFields: any;
                            prefixLength?: number;
                            ip?: {
                                $reserved: any;
                                $objectType: string;
                                $unknownFields: any;
                                prefixLength?: number;
                                value?: string;
                            };
                        };
                    };
                    addressType?: string;
                };
            };
        }[];
        priority?: number;
        description?: string;
        name?: string;
        vpcNameProjection?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            name?: string;
        };
    };
    #private;
}
import RoutingPolicy from "./RoutingPolicy";
import VpcNameProjection from "./VpcNameProjection";
