import { IObjectMeta } from "@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta";
import { Model, ModelData } from "@kubernetes-models/base";
export interface IEnvoyFilter {
    /**
     * Customizing Envoy configuration generated by Istio. See more details at: https://istio.io/docs/reference/config/networking/envoy-filter.html
     */
    "spec"?: {
        /**
         * One or more patches with match conditions.
         */
        "configPatches"?: Array<{
            "applyTo"?: "INVALID" | "LISTENER" | "FILTER_CHAIN" | "NETWORK_FILTER" | "HTTP_FILTER" | "ROUTE_CONFIGURATION" | "VIRTUAL_HOST" | "HTTP_ROUTE" | "CLUSTER" | "EXTENSION_CONFIG" | "BOOTSTRAP" | "LISTENER_FILTER";
            /**
             * Match on listener/route configuration/cluster.
             */
            "match"?: {
                /**
                 * Match on envoy cluster attributes.
                 */
                "cluster"?: {
                    /**
                     * The exact name of the cluster to match.
                     */
                    "name"?: string;
                    /**
                     * The service port for which this cluster was generated.
                     */
                    "portNumber"?: number;
                    /**
                     * The fully qualified service name for this cluster.
                     */
                    "service"?: string;
                    /**
                     * The subset associated with the service.
                     */
                    "subset"?: string;
                };
                /**
                 * The specific config generation context to match on.
                 */
                "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY";
                /**
                 * Match on envoy listener attributes.
                 */
                "listener"?: {
                    /**
                     * Match a specific filter chain in a listener.
                     */
                    "filterChain"?: {
                        /**
                         * Applies only to sidecars.
                         */
                        "applicationProtocols"?: string;
                        /**
                         * The destination_port value used by a filter chain's match condition.
                         */
                        "destinationPort"?: number;
                        /**
                         * The name of a specific filter to apply the patch to.
                         */
                        "filter"?: {
                            /**
                             * The filter name to match on.
                             */
                            "name"?: string;
                            "subFilter"?: {
                                /**
                                 * The filter name to match on.
                                 */
                                "name"?: string;
                            };
                        };
                        /**
                         * The name assigned to the filter chain.
                         */
                        "name"?: string;
                        /**
                         * The SNI value used by a filter chain's match condition.
                         */
                        "sni"?: string;
                        /**
                         * Applies only to `SIDECAR_INBOUND` context.
                         */
                        "transportProtocol"?: string;
                    };
                    /**
                     * Match a specific listener filter.
                     */
                    "listenerFilter"?: string;
                    /**
                     * Match a specific listener by its name.
                     */
                    "name"?: string;
                    "portName"?: string;
                    "portNumber"?: number;
                };
                /**
                 * Match on properties associated with a proxy.
                 */
                "proxy"?: {
                    "metadata"?: {
                        [key: string]: string;
                    };
                    "proxyVersion"?: string;
                };
                /**
                 * Match on envoy HTTP route configuration attributes.
                 */
                "routeConfiguration"?: {
                    "gateway"?: string;
                    /**
                     * Route configuration name to match on.
                     */
                    "name"?: string;
                    /**
                     * Applicable only for GATEWAY context.
                     */
                    "portName"?: string;
                    "portNumber"?: number;
                    "vhost"?: {
                        "name"?: string;
                        /**
                         * Match a specific route within the virtual host.
                         */
                        "route"?: {
                            /**
                             * Match a route with specific action type.
                             */
                            "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE";
                            "name"?: string;
                        };
                    };
                };
            } & (Exclude<{
                /**
                 * Match on envoy cluster attributes.
                 */
                "cluster"?: {
                    /**
                     * The exact name of the cluster to match.
                     */
                    "name"?: string;
                    /**
                     * The service port for which this cluster was generated.
                     */
                    "portNumber"?: number;
                    /**
                     * The fully qualified service name for this cluster.
                     */
                    "service"?: string;
                    /**
                     * The subset associated with the service.
                     */
                    "subset"?: string;
                };
                /**
                 * The specific config generation context to match on.
                 */
                "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY";
                /**
                 * Match on envoy listener attributes.
                 */
                "listener"?: {
                    /**
                     * Match a specific filter chain in a listener.
                     */
                    "filterChain"?: {
                        /**
                         * Applies only to sidecars.
                         */
                        "applicationProtocols"?: string;
                        /**
                         * The destination_port value used by a filter chain's match condition.
                         */
                        "destinationPort"?: number;
                        /**
                         * The name of a specific filter to apply the patch to.
                         */
                        "filter"?: {
                            /**
                             * The filter name to match on.
                             */
                            "name"?: string;
                            "subFilter"?: {
                                /**
                                 * The filter name to match on.
                                 */
                                "name"?: string;
                            };
                        };
                        /**
                         * The name assigned to the filter chain.
                         */
                        "name"?: string;
                        /**
                         * The SNI value used by a filter chain's match condition.
                         */
                        "sni"?: string;
                        /**
                         * Applies only to `SIDECAR_INBOUND` context.
                         */
                        "transportProtocol"?: string;
                    };
                    /**
                     * Match a specific listener filter.
                     */
                    "listenerFilter"?: string;
                    /**
                     * Match a specific listener by its name.
                     */
                    "name"?: string;
                    "portName"?: string;
                    "portNumber"?: number;
                };
                /**
                 * Match on properties associated with a proxy.
                 */
                "proxy"?: {
                    "metadata"?: {
                        [key: string]: string;
                    };
                    "proxyVersion"?: string;
                };
                /**
                 * Match on envoy HTTP route configuration attributes.
                 */
                "routeConfiguration"?: {
                    "gateway"?: string;
                    /**
                     * Route configuration name to match on.
                     */
                    "name"?: string;
                    /**
                     * Applicable only for GATEWAY context.
                     */
                    "portName"?: string;
                    "portNumber"?: number;
                    "vhost"?: {
                        "name"?: string;
                        /**
                         * Match a specific route within the virtual host.
                         */
                        "route"?: {
                            /**
                             * Match a route with specific action type.
                             */
                            "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE";
                            "name"?: string;
                        };
                    };
                };
            }, {
                /**
                 * Match on envoy cluster attributes.
                 */
                "cluster"?: {
                    /**
                     * The exact name of the cluster to match.
                     */
                    "name"?: string;
                    /**
                     * The service port for which this cluster was generated.
                     */
                    "portNumber"?: number;
                    /**
                     * The fully qualified service name for this cluster.
                     */
                    "service"?: string;
                    /**
                     * The subset associated with the service.
                     */
                    "subset"?: string;
                };
                /**
                 * The specific config generation context to match on.
                 */
                "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY";
                /**
                 * Match on envoy listener attributes.
                 */
                "listener"?: {
                    /**
                     * Match a specific filter chain in a listener.
                     */
                    "filterChain"?: {
                        /**
                         * Applies only to sidecars.
                         */
                        "applicationProtocols"?: string;
                        /**
                         * The destination_port value used by a filter chain's match condition.
                         */
                        "destinationPort"?: number;
                        /**
                         * The name of a specific filter to apply the patch to.
                         */
                        "filter"?: {
                            /**
                             * The filter name to match on.
                             */
                            "name"?: string;
                            "subFilter"?: {
                                /**
                                 * The filter name to match on.
                                 */
                                "name"?: string;
                            };
                        };
                        /**
                         * The name assigned to the filter chain.
                         */
                        "name"?: string;
                        /**
                         * The SNI value used by a filter chain's match condition.
                         */
                        "sni"?: string;
                        /**
                         * Applies only to `SIDECAR_INBOUND` context.
                         */
                        "transportProtocol"?: string;
                    };
                    /**
                     * Match a specific listener filter.
                     */
                    "listenerFilter"?: string;
                    /**
                     * Match a specific listener by its name.
                     */
                    "name"?: string;
                    "portName"?: string;
                    "portNumber"?: number;
                };
                /**
                 * Match on properties associated with a proxy.
                 */
                "proxy"?: {
                    "metadata"?: {
                        [key: string]: string;
                    };
                    "proxyVersion"?: string;
                };
                /**
                 * Match on envoy HTTP route configuration attributes.
                 */
                "routeConfiguration"?: {
                    "gateway"?: string;
                    /**
                     * Route configuration name to match on.
                     */
                    "name"?: string;
                    /**
                     * Applicable only for GATEWAY context.
                     */
                    "portName"?: string;
                    "portNumber"?: number;
                    "vhost"?: {
                        "name"?: string;
                        /**
                         * Match a specific route within the virtual host.
                         */
                        "route"?: {
                            /**
                             * Match a route with specific action type.
                             */
                            "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE";
                            "name"?: string;
                        };
                    };
                };
            } & ({
                /**
                 * Match on envoy cluster attributes.
                 */
                "cluster"?: {
                    /**
                     * The exact name of the cluster to match.
                     */
                    "name"?: string;
                    /**
                     * The service port for which this cluster was generated.
                     */
                    "portNumber"?: number;
                    /**
                     * The fully qualified service name for this cluster.
                     */
                    "service"?: string;
                    /**
                     * The subset associated with the service.
                     */
                    "subset"?: string;
                };
                /**
                 * The specific config generation context to match on.
                 */
                "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY";
                /**
                 * Match on envoy listener attributes.
                 */
                "listener": {
                    /**
                     * Match a specific filter chain in a listener.
                     */
                    "filterChain"?: {
                        /**
                         * Applies only to sidecars.
                         */
                        "applicationProtocols"?: string;
                        /**
                         * The destination_port value used by a filter chain's match condition.
                         */
                        "destinationPort"?: number;
                        /**
                         * The name of a specific filter to apply the patch to.
                         */
                        "filter"?: {
                            /**
                             * The filter name to match on.
                             */
                            "name"?: string;
                            "subFilter"?: {
                                /**
                                 * The filter name to match on.
                                 */
                                "name"?: string;
                            };
                        };
                        /**
                         * The name assigned to the filter chain.
                         */
                        "name"?: string;
                        /**
                         * The SNI value used by a filter chain's match condition.
                         */
                        "sni"?: string;
                        /**
                         * Applies only to `SIDECAR_INBOUND` context.
                         */
                        "transportProtocol"?: string;
                    };
                    /**
                     * Match a specific listener filter.
                     */
                    "listenerFilter"?: string;
                    /**
                     * Match a specific listener by its name.
                     */
                    "name"?: string;
                    "portName"?: string;
                    "portNumber"?: number;
                };
                /**
                 * Match on properties associated with a proxy.
                 */
                "proxy"?: {
                    "metadata"?: {
                        [key: string]: string;
                    };
                    "proxyVersion"?: string;
                };
                /**
                 * Match on envoy HTTP route configuration attributes.
                 */
                "routeConfiguration"?: {
                    "gateway"?: string;
                    /**
                     * Route configuration name to match on.
                     */
                    "name"?: string;
                    /**
                     * Applicable only for GATEWAY context.
                     */
                    "portName"?: string;
                    "portNumber"?: number;
                    "vhost"?: {
                        "name"?: string;
                        /**
                         * Match a specific route within the virtual host.
                         */
                        "route"?: {
                            /**
                             * Match a route with specific action type.
                             */
                            "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE";
                            "name"?: string;
                        };
                    };
                };
            } | {
                /**
                 * Match on envoy cluster attributes.
                 */
                "cluster"?: {
                    /**
                     * The exact name of the cluster to match.
                     */
                    "name"?: string;
                    /**
                     * The service port for which this cluster was generated.
                     */
                    "portNumber"?: number;
                    /**
                     * The fully qualified service name for this cluster.
                     */
                    "service"?: string;
                    /**
                     * The subset associated with the service.
                     */
                    "subset"?: string;
                };
                /**
                 * The specific config generation context to match on.
                 */
                "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY";
                /**
                 * Match on envoy listener attributes.
                 */
                "listener"?: {
                    /**
                     * Match a specific filter chain in a listener.
                     */
                    "filterChain"?: {
                        /**
                         * Applies only to sidecars.
                         */
                        "applicationProtocols"?: string;
                        /**
                         * The destination_port value used by a filter chain's match condition.
                         */
                        "destinationPort"?: number;
                        /**
                         * The name of a specific filter to apply the patch to.
                         */
                        "filter"?: {
                            /**
                             * The filter name to match on.
                             */
                            "name"?: string;
                            "subFilter"?: {
                                /**
                                 * The filter name to match on.
                                 */
                                "name"?: string;
                            };
                        };
                        /**
                         * The name assigned to the filter chain.
                         */
                        "name"?: string;
                        /**
                         * The SNI value used by a filter chain's match condition.
                         */
                        "sni"?: string;
                        /**
                         * Applies only to `SIDECAR_INBOUND` context.
                         */
                        "transportProtocol"?: string;
                    };
                    /**
                     * Match a specific listener filter.
                     */
                    "listenerFilter"?: string;
                    /**
                     * Match a specific listener by its name.
                     */
                    "name"?: string;
                    "portName"?: string;
                    "portNumber"?: number;
                };
                /**
                 * Match on properties associated with a proxy.
                 */
                "proxy"?: {
                    "metadata"?: {
                        [key: string]: string;
                    };
                    "proxyVersion"?: string;
                };
                /**
                 * Match on envoy HTTP route configuration attributes.
                 */
                "routeConfiguration": {
                    "gateway"?: string;
                    /**
                     * Route configuration name to match on.
                     */
                    "name"?: string;
                    /**
                     * Applicable only for GATEWAY context.
                     */
                    "portName"?: string;
                    "portNumber"?: number;
                    "vhost"?: {
                        "name"?: string;
                        /**
                         * Match a specific route within the virtual host.
                         */
                        "route"?: {
                            /**
                             * Match a route with specific action type.
                             */
                            "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE";
                            "name"?: string;
                        };
                    };
                };
            } | {
                /**
                 * Match on envoy cluster attributes.
                 */
                "cluster": {
                    /**
                     * The exact name of the cluster to match.
                     */
                    "name"?: string;
                    /**
                     * The service port for which this cluster was generated.
                     */
                    "portNumber"?: number;
                    /**
                     * The fully qualified service name for this cluster.
                     */
                    "service"?: string;
                    /**
                     * The subset associated with the service.
                     */
                    "subset"?: string;
                };
                /**
                 * The specific config generation context to match on.
                 */
                "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY";
                /**
                 * Match on envoy listener attributes.
                 */
                "listener"?: {
                    /**
                     * Match a specific filter chain in a listener.
                     */
                    "filterChain"?: {
                        /**
                         * Applies only to sidecars.
                         */
                        "applicationProtocols"?: string;
                        /**
                         * The destination_port value used by a filter chain's match condition.
                         */
                        "destinationPort"?: number;
                        /**
                         * The name of a specific filter to apply the patch to.
                         */
                        "filter"?: {
                            /**
                             * The filter name to match on.
                             */
                            "name"?: string;
                            "subFilter"?: {
                                /**
                                 * The filter name to match on.
                                 */
                                "name"?: string;
                            };
                        };
                        /**
                         * The name assigned to the filter chain.
                         */
                        "name"?: string;
                        /**
                         * The SNI value used by a filter chain's match condition.
                         */
                        "sni"?: string;
                        /**
                         * Applies only to `SIDECAR_INBOUND` context.
                         */
                        "transportProtocol"?: string;
                    };
                    /**
                     * Match a specific listener filter.
                     */
                    "listenerFilter"?: string;
                    /**
                     * Match a specific listener by its name.
                     */
                    "name"?: string;
                    "portName"?: string;
                    "portNumber"?: number;
                };
                /**
                 * Match on properties associated with a proxy.
                 */
                "proxy"?: {
                    "metadata"?: {
                        [key: string]: string;
                    };
                    "proxyVersion"?: string;
                };
                /**
                 * Match on envoy HTTP route configuration attributes.
                 */
                "routeConfiguration"?: {
                    "gateway"?: string;
                    /**
                     * Route configuration name to match on.
                     */
                    "name"?: string;
                    /**
                     * Applicable only for GATEWAY context.
                     */
                    "portName"?: string;
                    "portNumber"?: number;
                    "vhost"?: {
                        "name"?: string;
                        /**
                         * Match a specific route within the virtual host.
                         */
                        "route"?: {
                            /**
                             * Match a route with specific action type.
                             */
                            "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE";
                            "name"?: string;
                        };
                    };
                };
            })> | {
                /**
                 * Match on envoy cluster attributes.
                 */
                "cluster"?: {
                    /**
                     * The exact name of the cluster to match.
                     */
                    "name"?: string;
                    /**
                     * The service port for which this cluster was generated.
                     */
                    "portNumber"?: number;
                    /**
                     * The fully qualified service name for this cluster.
                     */
                    "service"?: string;
                    /**
                     * The subset associated with the service.
                     */
                    "subset"?: string;
                };
                /**
                 * The specific config generation context to match on.
                 */
                "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY";
                /**
                 * Match on envoy listener attributes.
                 */
                "listener": {
                    /**
                     * Match a specific filter chain in a listener.
                     */
                    "filterChain"?: {
                        /**
                         * Applies only to sidecars.
                         */
                        "applicationProtocols"?: string;
                        /**
                         * The destination_port value used by a filter chain's match condition.
                         */
                        "destinationPort"?: number;
                        /**
                         * The name of a specific filter to apply the patch to.
                         */
                        "filter"?: {
                            /**
                             * The filter name to match on.
                             */
                            "name"?: string;
                            "subFilter"?: {
                                /**
                                 * The filter name to match on.
                                 */
                                "name"?: string;
                            };
                        };
                        /**
                         * The name assigned to the filter chain.
                         */
                        "name"?: string;
                        /**
                         * The SNI value used by a filter chain's match condition.
                         */
                        "sni"?: string;
                        /**
                         * Applies only to `SIDECAR_INBOUND` context.
                         */
                        "transportProtocol"?: string;
                    };
                    /**
                     * Match a specific listener filter.
                     */
                    "listenerFilter"?: string;
                    /**
                     * Match a specific listener by its name.
                     */
                    "name"?: string;
                    "portName"?: string;
                    "portNumber"?: number;
                };
                /**
                 * Match on properties associated with a proxy.
                 */
                "proxy"?: {
                    "metadata"?: {
                        [key: string]: string;
                    };
                    "proxyVersion"?: string;
                };
                /**
                 * Match on envoy HTTP route configuration attributes.
                 */
                "routeConfiguration"?: {
                    "gateway"?: string;
                    /**
                     * Route configuration name to match on.
                     */
                    "name"?: string;
                    /**
                     * Applicable only for GATEWAY context.
                     */
                    "portName"?: string;
                    "portNumber"?: number;
                    "vhost"?: {
                        "name"?: string;
                        /**
                         * Match a specific route within the virtual host.
                         */
                        "route"?: {
                            /**
                             * Match a route with specific action type.
                             */
                            "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE";
                            "name"?: string;
                        };
                    };
                };
            } | {
                /**
                 * Match on envoy cluster attributes.
                 */
                "cluster"?: {
                    /**
                     * The exact name of the cluster to match.
                     */
                    "name"?: string;
                    /**
                     * The service port for which this cluster was generated.
                     */
                    "portNumber"?: number;
                    /**
                     * The fully qualified service name for this cluster.
                     */
                    "service"?: string;
                    /**
                     * The subset associated with the service.
                     */
                    "subset"?: string;
                };
                /**
                 * The specific config generation context to match on.
                 */
                "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY";
                /**
                 * Match on envoy listener attributes.
                 */
                "listener"?: {
                    /**
                     * Match a specific filter chain in a listener.
                     */
                    "filterChain"?: {
                        /**
                         * Applies only to sidecars.
                         */
                        "applicationProtocols"?: string;
                        /**
                         * The destination_port value used by a filter chain's match condition.
                         */
                        "destinationPort"?: number;
                        /**
                         * The name of a specific filter to apply the patch to.
                         */
                        "filter"?: {
                            /**
                             * The filter name to match on.
                             */
                            "name"?: string;
                            "subFilter"?: {
                                /**
                                 * The filter name to match on.
                                 */
                                "name"?: string;
                            };
                        };
                        /**
                         * The name assigned to the filter chain.
                         */
                        "name"?: string;
                        /**
                         * The SNI value used by a filter chain's match condition.
                         */
                        "sni"?: string;
                        /**
                         * Applies only to `SIDECAR_INBOUND` context.
                         */
                        "transportProtocol"?: string;
                    };
                    /**
                     * Match a specific listener filter.
                     */
                    "listenerFilter"?: string;
                    /**
                     * Match a specific listener by its name.
                     */
                    "name"?: string;
                    "portName"?: string;
                    "portNumber"?: number;
                };
                /**
                 * Match on properties associated with a proxy.
                 */
                "proxy"?: {
                    "metadata"?: {
                        [key: string]: string;
                    };
                    "proxyVersion"?: string;
                };
                /**
                 * Match on envoy HTTP route configuration attributes.
                 */
                "routeConfiguration": {
                    "gateway"?: string;
                    /**
                     * Route configuration name to match on.
                     */
                    "name"?: string;
                    /**
                     * Applicable only for GATEWAY context.
                     */
                    "portName"?: string;
                    "portNumber"?: number;
                    "vhost"?: {
                        "name"?: string;
                        /**
                         * Match a specific route within the virtual host.
                         */
                        "route"?: {
                            /**
                             * Match a route with specific action type.
                             */
                            "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE";
                            "name"?: string;
                        };
                    };
                };
            } | {
                /**
                 * Match on envoy cluster attributes.
                 */
                "cluster": {
                    /**
                     * The exact name of the cluster to match.
                     */
                    "name"?: string;
                    /**
                     * The service port for which this cluster was generated.
                     */
                    "portNumber"?: number;
                    /**
                     * The fully qualified service name for this cluster.
                     */
                    "service"?: string;
                    /**
                     * The subset associated with the service.
                     */
                    "subset"?: string;
                };
                /**
                 * The specific config generation context to match on.
                 */
                "context"?: "ANY" | "SIDECAR_INBOUND" | "SIDECAR_OUTBOUND" | "GATEWAY";
                /**
                 * Match on envoy listener attributes.
                 */
                "listener"?: {
                    /**
                     * Match a specific filter chain in a listener.
                     */
                    "filterChain"?: {
                        /**
                         * Applies only to sidecars.
                         */
                        "applicationProtocols"?: string;
                        /**
                         * The destination_port value used by a filter chain's match condition.
                         */
                        "destinationPort"?: number;
                        /**
                         * The name of a specific filter to apply the patch to.
                         */
                        "filter"?: {
                            /**
                             * The filter name to match on.
                             */
                            "name"?: string;
                            "subFilter"?: {
                                /**
                                 * The filter name to match on.
                                 */
                                "name"?: string;
                            };
                        };
                        /**
                         * The name assigned to the filter chain.
                         */
                        "name"?: string;
                        /**
                         * The SNI value used by a filter chain's match condition.
                         */
                        "sni"?: string;
                        /**
                         * Applies only to `SIDECAR_INBOUND` context.
                         */
                        "transportProtocol"?: string;
                    };
                    /**
                     * Match a specific listener filter.
                     */
                    "listenerFilter"?: string;
                    /**
                     * Match a specific listener by its name.
                     */
                    "name"?: string;
                    "portName"?: string;
                    "portNumber"?: number;
                };
                /**
                 * Match on properties associated with a proxy.
                 */
                "proxy"?: {
                    "metadata"?: {
                        [key: string]: string;
                    };
                    "proxyVersion"?: string;
                };
                /**
                 * Match on envoy HTTP route configuration attributes.
                 */
                "routeConfiguration"?: {
                    "gateway"?: string;
                    /**
                     * Route configuration name to match on.
                     */
                    "name"?: string;
                    /**
                     * Applicable only for GATEWAY context.
                     */
                    "portName"?: string;
                    "portNumber"?: number;
                    "vhost"?: {
                        "name"?: string;
                        /**
                         * Match a specific route within the virtual host.
                         */
                        "route"?: {
                            /**
                             * Match a route with specific action type.
                             */
                            "action"?: "ANY" | "ROUTE" | "REDIRECT" | "DIRECT_RESPONSE";
                            "name"?: string;
                        };
                    };
                };
            });
            /**
             * The patch to apply along with the operation.
             */
            "patch"?: {
                /**
                 * Determines the filter insertion order.
                 */
                "filterClass"?: "UNSPECIFIED" | "AUTHN" | "AUTHZ" | "STATS";
                /**
                 * Determines how the patch should be applied.
                 */
                "operation"?: "INVALID" | "MERGE" | "ADD" | "REMOVE" | "INSERT_BEFORE" | "INSERT_AFTER" | "INSERT_FIRST" | "REPLACE";
                /**
                 * The JSON config of the object being patched.
                 */
                "value"?: {};
            };
        }>;
        /**
         * Priority defines the order in which patch sets are applied within a context.
         */
        "priority"?: number;
        "workloadSelector"?: {
            "labels"?: {
                [key: string]: string;
            };
        };
    };
    "status"?: {};
    "apiVersion": "networking.istio.io/v1alpha3";
    "kind": "EnvoyFilter";
    "metadata"?: IObjectMeta;
}
export declare class EnvoyFilter extends Model<IEnvoyFilter> implements IEnvoyFilter {
    "spec"?: IEnvoyFilter["spec"];
    "status"?: IEnvoyFilter["status"];
    "apiVersion": IEnvoyFilter["apiVersion"];
    "kind": IEnvoyFilter["kind"];
    "metadata"?: IEnvoyFilter["metadata"];
    static apiVersion: IEnvoyFilter["apiVersion"];
    static kind: IEnvoyFilter["kind"];
    static is: import("@kubernetes-models/base").TypeMetaGuard<IEnvoyFilter>;
    constructor(data?: ModelData<IEnvoyFilter>);
}
