import _m0 from 'protobufjs/minimal';
import { Condition } from '../../../../../yandex/cloud/smartwebsecurity/v1/security_profile';
export declare const protobufPackage = "yandex.cloud.smartwebsecurity.v1.waf";
export interface WafProfile {
    /** ID of the WAF profile. */
    id: string;
    /** ID of the folder that the WAF profile belongs to. */
    folderId: string;
    /** ID of the cloud that the WAF profile belongs to. */
    cloudId: string;
    /** Name of the WAF profile. The name is unique within the folder. 1-50 characters long. */
    name: string;
    /** Optional description of the WAF profile. */
    description: string;
    /** Labels as `` key:value `` pairs. Maximum of 64 per resource. */
    labels: {
        [key: string]: string;
    };
    /** Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. */
    createdAt?: Date;
    /** Settings for each rule in rule set. */
    rules: WafProfileRule[];
    /** List of exclusion rules. See [Rules](/docs/smartwebsecurity/concepts/waf#exclusion-rules). */
    exclusionRules: WafProfileExclusionRule[];
    /** Core rule set settings. See [Basic rule set](/docs/smartwebsecurity/concepts/waf#rules-set) for details. */
    coreRuleSet?: WafProfile_CoreRuleSet | undefined;
    /**
     * The parameter is deprecated. Parameters for request body analyzer.
     *
     * @deprecated
     */
    analyzeRequestBody?: WafProfile_AnalyzeRequestBody;
}
export interface WafProfile_LabelsEntry {
    key: string;
    value: string;
}
export interface WafProfile_CoreRuleSet {
    /**
     * Anomaly score.
     * Enter an integer within the range of 2 and 10000.
     * The higher this value, the more likely it is that the request that satisfies the rule is an attack.
     * See [Rules](/docs/smartwebsecurity/concepts/waf#anomaly) for more details.
     */
    inboundAnomalyScore: number;
    /**
     * Paranoia level.
     * Enter an integer within the range of 1 and 4.
     * Paranoia level classifies rules according to their aggression. The higher the paranoia level, the better your protection,
     * but also the higher the probability of WAF false positives.
     * See [Rules](/docs/smartwebsecurity/concepts/waf#paranoia) for more details.
     * NOTE: this option has no effect on enabling or disabling rules.
     * it is used only as recommendation for user to enable all rules with paranoia_level <= this value.
     */
    paranoiaLevel: number;
    /** Rule set. */
    ruleSet?: RuleSet;
}
export interface WafProfile_AnalyzeRequestBody {
    /** Possible to turn analyzer on and turn if off. */
    isEnabled: boolean;
    /** Maximum size of body to pass to analyzer. In kilobytes. */
    sizeLimit: number;
    /** Action to perform if maximum size of body exceeded. */
    sizeLimitAction: WafProfile_AnalyzeRequestBody_Action;
}
/** Action to perform if maximum size of body exceeded. */
export declare enum WafProfile_AnalyzeRequestBody_Action {
    ACTION_UNSPECIFIED = 0,
    /** IGNORE - Ignore request. */
    IGNORE = 1,
    /** DENY - Deny request. */
    DENY = 2,
    UNRECOGNIZED = -1
}
export declare function wafProfile_AnalyzeRequestBody_ActionFromJSON(object: any): WafProfile_AnalyzeRequestBody_Action;
export declare function wafProfile_AnalyzeRequestBody_ActionToJSON(object: WafProfile_AnalyzeRequestBody_Action): string;
/** WafProfileRule object. Determines settings for each rule_id in rule set. */
export interface WafProfileRule {
    /** Rule ID. */
    ruleId: string;
    /** Determines is it rule enabled or not. */
    isEnabled: boolean;
    /** Determines is it rule blocking or not. */
    isBlocking: boolean;
}
/** A WafProfileExclusionRule object. See [Exclusion rules](/docs/smartwebsecurity/concepts/waf#exclusion-rules). */
export interface WafProfileExclusionRule {
    /** Name of exclusion rule. */
    name: string;
    /** Optional description of the rule. 0-512 characters long. */
    description: string;
    /** The condition for matching traffic. */
    condition?: Condition;
    /** Exclude rules. */
    excludeRules?: WafProfileExclusionRule_ExcludeRules;
    /** Records the fact that an exception rule is triggered. */
    logExcluded: boolean;
}
/** Determines list of excluded rules. */
export interface WafProfileExclusionRule_ExcludeRules {
    /** Set this option true to exclude all rules. */
    excludeAll: boolean;
    /** List of rules to exclude. */
    ruleIds: string[];
}
/** A RuleSet object. Determines name and version of rule set. */
export interface RuleSet {
    /** Name of rule set. */
    name: string;
    /** Version of rule set. */
    version: string;
}
export declare const WafProfile: {
    encode(message: WafProfile, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): WafProfile;
    fromJSON(object: any): WafProfile;
    toJSON(message: WafProfile): unknown;
    fromPartial<I extends {
        id?: string | undefined;
        folderId?: string | undefined;
        cloudId?: string | undefined;
        name?: string | undefined;
        description?: string | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        createdAt?: Date | undefined;
        rules?: {
            ruleId?: string | undefined;
            isEnabled?: boolean | undefined;
            isBlocking?: boolean | undefined;
        }[] | undefined;
        exclusionRules?: {
            name?: string | undefined;
            description?: string | undefined;
            condition?: {
                authority?: {
                    authorities?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[] | undefined;
                } | undefined;
                httpMethod?: {
                    httpMethods?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[] | undefined;
                } | undefined;
                requestUri?: {
                    path?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                    queries?: {
                        key?: string | undefined;
                        value?: {
                            exactMatch?: string | undefined;
                            exactNotMatch?: string | undefined;
                            prefixMatch?: string | undefined;
                            prefixNotMatch?: string | undefined;
                            pireRegexMatch?: string | undefined;
                            pireRegexNotMatch?: string | undefined;
                        } | undefined;
                    }[] | undefined;
                } | undefined;
                headers?: {
                    name?: string | undefined;
                    value?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                }[] | undefined;
                sourceIp?: {
                    ipRangesMatch?: {
                        ipRanges?: string[] | undefined;
                    } | undefined;
                    ipRangesNotMatch?: {
                        ipRanges?: string[] | undefined;
                    } | undefined;
                    geoIpMatch?: {
                        locations?: string[] | undefined;
                    } | undefined;
                    geoIpNotMatch?: {
                        locations?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            excludeRules?: {
                excludeAll?: boolean | undefined;
                ruleIds?: string[] | undefined;
            } | undefined;
            logExcluded?: boolean | undefined;
        }[] | undefined;
        coreRuleSet?: {
            inboundAnomalyScore?: number | undefined;
            paranoiaLevel?: number | undefined;
            ruleSet?: {
                name?: string | undefined;
                version?: string | undefined;
            } | undefined;
        } | undefined;
        analyzeRequestBody?: {
            isEnabled?: boolean | undefined;
            sizeLimit?: number | undefined;
            sizeLimitAction?: WafProfile_AnalyzeRequestBody_Action | undefined;
        } | undefined;
    } & {
        id?: string | undefined;
        folderId?: string | undefined;
        cloudId?: string | undefined;
        name?: string | undefined;
        description?: string | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
        createdAt?: Date | undefined;
        rules?: ({
            ruleId?: string | undefined;
            isEnabled?: boolean | undefined;
            isBlocking?: boolean | undefined;
        }[] & ({
            ruleId?: string | undefined;
            isEnabled?: boolean | undefined;
            isBlocking?: boolean | undefined;
        } & {
            ruleId?: string | undefined;
            isEnabled?: boolean | undefined;
            isBlocking?: boolean | undefined;
        } & Record<Exclude<keyof I["rules"][number], keyof WafProfileRule>, never>)[] & Record<Exclude<keyof I["rules"], keyof {
            ruleId?: string | undefined;
            isEnabled?: boolean | undefined;
            isBlocking?: boolean | undefined;
        }[]>, never>) | undefined;
        exclusionRules?: ({
            name?: string | undefined;
            description?: string | undefined;
            condition?: {
                authority?: {
                    authorities?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[] | undefined;
                } | undefined;
                httpMethod?: {
                    httpMethods?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[] | undefined;
                } | undefined;
                requestUri?: {
                    path?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                    queries?: {
                        key?: string | undefined;
                        value?: {
                            exactMatch?: string | undefined;
                            exactNotMatch?: string | undefined;
                            prefixMatch?: string | undefined;
                            prefixNotMatch?: string | undefined;
                            pireRegexMatch?: string | undefined;
                            pireRegexNotMatch?: string | undefined;
                        } | undefined;
                    }[] | undefined;
                } | undefined;
                headers?: {
                    name?: string | undefined;
                    value?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                }[] | undefined;
                sourceIp?: {
                    ipRangesMatch?: {
                        ipRanges?: string[] | undefined;
                    } | undefined;
                    ipRangesNotMatch?: {
                        ipRanges?: string[] | undefined;
                    } | undefined;
                    geoIpMatch?: {
                        locations?: string[] | undefined;
                    } | undefined;
                    geoIpNotMatch?: {
                        locations?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            excludeRules?: {
                excludeAll?: boolean | undefined;
                ruleIds?: string[] | undefined;
            } | undefined;
            logExcluded?: boolean | undefined;
        }[] & ({
            name?: string | undefined;
            description?: string | undefined;
            condition?: {
                authority?: {
                    authorities?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[] | undefined;
                } | undefined;
                httpMethod?: {
                    httpMethods?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[] | undefined;
                } | undefined;
                requestUri?: {
                    path?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                    queries?: {
                        key?: string | undefined;
                        value?: {
                            exactMatch?: string | undefined;
                            exactNotMatch?: string | undefined;
                            prefixMatch?: string | undefined;
                            prefixNotMatch?: string | undefined;
                            pireRegexMatch?: string | undefined;
                            pireRegexNotMatch?: string | undefined;
                        } | undefined;
                    }[] | undefined;
                } | undefined;
                headers?: {
                    name?: string | undefined;
                    value?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                }[] | undefined;
                sourceIp?: {
                    ipRangesMatch?: {
                        ipRanges?: string[] | undefined;
                    } | undefined;
                    ipRangesNotMatch?: {
                        ipRanges?: string[] | undefined;
                    } | undefined;
                    geoIpMatch?: {
                        locations?: string[] | undefined;
                    } | undefined;
                    geoIpNotMatch?: {
                        locations?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            excludeRules?: {
                excludeAll?: boolean | undefined;
                ruleIds?: string[] | undefined;
            } | undefined;
            logExcluded?: boolean | undefined;
        } & {
            name?: string | undefined;
            description?: string | undefined;
            condition?: ({
                authority?: {
                    authorities?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[] | undefined;
                } | undefined;
                httpMethod?: {
                    httpMethods?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[] | undefined;
                } | undefined;
                requestUri?: {
                    path?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                    queries?: {
                        key?: string | undefined;
                        value?: {
                            exactMatch?: string | undefined;
                            exactNotMatch?: string | undefined;
                            prefixMatch?: string | undefined;
                            prefixNotMatch?: string | undefined;
                            pireRegexMatch?: string | undefined;
                            pireRegexNotMatch?: string | undefined;
                        } | undefined;
                    }[] | undefined;
                } | undefined;
                headers?: {
                    name?: string | undefined;
                    value?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                }[] | undefined;
                sourceIp?: {
                    ipRangesMatch?: {
                        ipRanges?: string[] | undefined;
                    } | undefined;
                    ipRangesNotMatch?: {
                        ipRanges?: string[] | undefined;
                    } | undefined;
                    geoIpMatch?: {
                        locations?: string[] | undefined;
                    } | undefined;
                    geoIpNotMatch?: {
                        locations?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } & {
                authority?: ({
                    authorities?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[] | undefined;
                } & {
                    authorities?: ({
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[] & ({
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } & {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["authority"]["authorities"][number], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_StringMatcher>, never>)[] & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["authority"]["authorities"], keyof {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[]>, never>) | undefined;
                } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["authority"], "authorities">, never>) | undefined;
                httpMethod?: ({
                    httpMethods?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[] | undefined;
                } & {
                    httpMethods?: ({
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[] & ({
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } & {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["httpMethod"]["httpMethods"][number], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_StringMatcher>, never>)[] & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["httpMethod"]["httpMethods"], keyof {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[]>, never>) | undefined;
                } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["httpMethod"], "httpMethods">, never>) | undefined;
                requestUri?: ({
                    path?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                    queries?: {
                        key?: string | undefined;
                        value?: {
                            exactMatch?: string | undefined;
                            exactNotMatch?: string | undefined;
                            prefixMatch?: string | undefined;
                            prefixNotMatch?: string | undefined;
                            pireRegexMatch?: string | undefined;
                            pireRegexNotMatch?: string | undefined;
                        } | undefined;
                    }[] | undefined;
                } & {
                    path?: ({
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } & {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["requestUri"]["path"], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_StringMatcher>, never>) | undefined;
                    queries?: ({
                        key?: string | undefined;
                        value?: {
                            exactMatch?: string | undefined;
                            exactNotMatch?: string | undefined;
                            prefixMatch?: string | undefined;
                            prefixNotMatch?: string | undefined;
                            pireRegexMatch?: string | undefined;
                            pireRegexNotMatch?: string | undefined;
                        } | undefined;
                    }[] & ({
                        key?: string | undefined;
                        value?: {
                            exactMatch?: string | undefined;
                            exactNotMatch?: string | undefined;
                            prefixMatch?: string | undefined;
                            prefixNotMatch?: string | undefined;
                            pireRegexMatch?: string | undefined;
                            pireRegexNotMatch?: string | undefined;
                        } | undefined;
                    } & {
                        key?: string | undefined;
                        value?: ({
                            exactMatch?: string | undefined;
                            exactNotMatch?: string | undefined;
                            prefixMatch?: string | undefined;
                            prefixNotMatch?: string | undefined;
                            pireRegexMatch?: string | undefined;
                            pireRegexNotMatch?: string | undefined;
                        } & {
                            exactMatch?: string | undefined;
                            exactNotMatch?: string | undefined;
                            prefixMatch?: string | undefined;
                            prefixNotMatch?: string | undefined;
                            pireRegexMatch?: string | undefined;
                            pireRegexNotMatch?: string | undefined;
                        } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["requestUri"]["queries"][number]["value"], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_StringMatcher>, never>) | undefined;
                    } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["requestUri"]["queries"][number], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_QueryMatcher>, never>)[] & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["requestUri"]["queries"], keyof {
                        key?: string | undefined;
                        value?: {
                            exactMatch?: string | undefined;
                            exactNotMatch?: string | undefined;
                            prefixMatch?: string | undefined;
                            prefixNotMatch?: string | undefined;
                            pireRegexMatch?: string | undefined;
                            pireRegexNotMatch?: string | undefined;
                        } | undefined;
                    }[]>, never>) | undefined;
                } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["requestUri"], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_RequestUriMatcher>, never>) | undefined;
                headers?: ({
                    name?: string | undefined;
                    value?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                }[] & ({
                    name?: string | undefined;
                    value?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                } & {
                    name?: string | undefined;
                    value?: ({
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } & {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["headers"][number]["value"], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_StringMatcher>, never>) | undefined;
                } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["headers"][number], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_HeaderMatcher>, never>)[] & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["headers"], keyof {
                    name?: string | undefined;
                    value?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                }[]>, never>) | undefined;
                sourceIp?: ({
                    ipRangesMatch?: {
                        ipRanges?: string[] | undefined;
                    } | undefined;
                    ipRangesNotMatch?: {
                        ipRanges?: string[] | undefined;
                    } | undefined;
                    geoIpMatch?: {
                        locations?: string[] | undefined;
                    } | undefined;
                    geoIpNotMatch?: {
                        locations?: string[] | undefined;
                    } | undefined;
                } & {
                    ipRangesMatch?: ({
                        ipRanges?: string[] | undefined;
                    } & {
                        ipRanges?: (string[] & string[] & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["sourceIp"]["ipRangesMatch"]["ipRanges"], keyof string[]>, never>) | undefined;
                    } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["sourceIp"]["ipRangesMatch"], "ipRanges">, never>) | undefined;
                    ipRangesNotMatch?: ({
                        ipRanges?: string[] | undefined;
                    } & {
                        ipRanges?: (string[] & string[] & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["sourceIp"]["ipRangesNotMatch"]["ipRanges"], keyof string[]>, never>) | undefined;
                    } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["sourceIp"]["ipRangesNotMatch"], "ipRanges">, never>) | undefined;
                    geoIpMatch?: ({
                        locations?: string[] | undefined;
                    } & {
                        locations?: (string[] & string[] & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["sourceIp"]["geoIpMatch"]["locations"], keyof string[]>, never>) | undefined;
                    } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["sourceIp"]["geoIpMatch"], "locations">, never>) | undefined;
                    geoIpNotMatch?: ({
                        locations?: string[] | undefined;
                    } & {
                        locations?: (string[] & string[] & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["sourceIp"]["geoIpNotMatch"]["locations"], keyof string[]>, never>) | undefined;
                    } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["sourceIp"]["geoIpNotMatch"], "locations">, never>) | undefined;
                } & Record<Exclude<keyof I["exclusionRules"][number]["condition"]["sourceIp"], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_IpMatcher>, never>) | undefined;
            } & Record<Exclude<keyof I["exclusionRules"][number]["condition"], keyof Condition>, never>) | undefined;
            excludeRules?: ({
                excludeAll?: boolean | undefined;
                ruleIds?: string[] | undefined;
            } & {
                excludeAll?: boolean | undefined;
                ruleIds?: (string[] & string[] & Record<Exclude<keyof I["exclusionRules"][number]["excludeRules"]["ruleIds"], keyof string[]>, never>) | undefined;
            } & Record<Exclude<keyof I["exclusionRules"][number]["excludeRules"], keyof WafProfileExclusionRule_ExcludeRules>, never>) | undefined;
            logExcluded?: boolean | undefined;
        } & Record<Exclude<keyof I["exclusionRules"][number], keyof WafProfileExclusionRule>, never>)[] & Record<Exclude<keyof I["exclusionRules"], keyof {
            name?: string | undefined;
            description?: string | undefined;
            condition?: {
                authority?: {
                    authorities?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[] | undefined;
                } | undefined;
                httpMethod?: {
                    httpMethods?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    }[] | undefined;
                } | undefined;
                requestUri?: {
                    path?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                    queries?: {
                        key?: string | undefined;
                        value?: {
                            exactMatch?: string | undefined;
                            exactNotMatch?: string | undefined;
                            prefixMatch?: string | undefined;
                            prefixNotMatch?: string | undefined;
                            pireRegexMatch?: string | undefined;
                            pireRegexNotMatch?: string | undefined;
                        } | undefined;
                    }[] | undefined;
                } | undefined;
                headers?: {
                    name?: string | undefined;
                    value?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                }[] | undefined;
                sourceIp?: {
                    ipRangesMatch?: {
                        ipRanges?: string[] | undefined;
                    } | undefined;
                    ipRangesNotMatch?: {
                        ipRanges?: string[] | undefined;
                    } | undefined;
                    geoIpMatch?: {
                        locations?: string[] | undefined;
                    } | undefined;
                    geoIpNotMatch?: {
                        locations?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            excludeRules?: {
                excludeAll?: boolean | undefined;
                ruleIds?: string[] | undefined;
            } | undefined;
            logExcluded?: boolean | undefined;
        }[]>, never>) | undefined;
        coreRuleSet?: ({
            inboundAnomalyScore?: number | undefined;
            paranoiaLevel?: number | undefined;
            ruleSet?: {
                name?: string | undefined;
                version?: string | undefined;
            } | undefined;
        } & {
            inboundAnomalyScore?: number | undefined;
            paranoiaLevel?: number | undefined;
            ruleSet?: ({
                name?: string | undefined;
                version?: string | undefined;
            } & {
                name?: string | undefined;
                version?: string | undefined;
            } & Record<Exclude<keyof I["coreRuleSet"]["ruleSet"], keyof RuleSet>, never>) | undefined;
        } & Record<Exclude<keyof I["coreRuleSet"], keyof WafProfile_CoreRuleSet>, never>) | undefined;
        analyzeRequestBody?: ({
            isEnabled?: boolean | undefined;
            sizeLimit?: number | undefined;
            sizeLimitAction?: WafProfile_AnalyzeRequestBody_Action | undefined;
        } & {
            isEnabled?: boolean | undefined;
            sizeLimit?: number | undefined;
            sizeLimitAction?: WafProfile_AnalyzeRequestBody_Action | undefined;
        } & Record<Exclude<keyof I["analyzeRequestBody"], keyof WafProfile_AnalyzeRequestBody>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof WafProfile>, never>>(object: I): WafProfile;
};
export declare const WafProfile_LabelsEntry: {
    encode(message: WafProfile_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): WafProfile_LabelsEntry;
    fromJSON(object: any): WafProfile_LabelsEntry;
    toJSON(message: WafProfile_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof WafProfile_LabelsEntry>, never>>(object: I): WafProfile_LabelsEntry;
};
export declare const WafProfile_CoreRuleSet: {
    encode(message: WafProfile_CoreRuleSet, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): WafProfile_CoreRuleSet;
    fromJSON(object: any): WafProfile_CoreRuleSet;
    toJSON(message: WafProfile_CoreRuleSet): unknown;
    fromPartial<I extends {
        inboundAnomalyScore?: number | undefined;
        paranoiaLevel?: number | undefined;
        ruleSet?: {
            name?: string | undefined;
            version?: string | undefined;
        } | undefined;
    } & {
        inboundAnomalyScore?: number | undefined;
        paranoiaLevel?: number | undefined;
        ruleSet?: ({
            name?: string | undefined;
            version?: string | undefined;
        } & {
            name?: string | undefined;
            version?: string | undefined;
        } & Record<Exclude<keyof I["ruleSet"], keyof RuleSet>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof WafProfile_CoreRuleSet>, never>>(object: I): WafProfile_CoreRuleSet;
};
export declare const WafProfile_AnalyzeRequestBody: {
    encode(message: WafProfile_AnalyzeRequestBody, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): WafProfile_AnalyzeRequestBody;
    fromJSON(object: any): WafProfile_AnalyzeRequestBody;
    toJSON(message: WafProfile_AnalyzeRequestBody): unknown;
    fromPartial<I extends {
        isEnabled?: boolean | undefined;
        sizeLimit?: number | undefined;
        sizeLimitAction?: WafProfile_AnalyzeRequestBody_Action | undefined;
    } & {
        isEnabled?: boolean | undefined;
        sizeLimit?: number | undefined;
        sizeLimitAction?: WafProfile_AnalyzeRequestBody_Action | undefined;
    } & Record<Exclude<keyof I, keyof WafProfile_AnalyzeRequestBody>, never>>(object: I): WafProfile_AnalyzeRequestBody;
};
export declare const WafProfileRule: {
    encode(message: WafProfileRule, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): WafProfileRule;
    fromJSON(object: any): WafProfileRule;
    toJSON(message: WafProfileRule): unknown;
    fromPartial<I extends {
        ruleId?: string | undefined;
        isEnabled?: boolean | undefined;
        isBlocking?: boolean | undefined;
    } & {
        ruleId?: string | undefined;
        isEnabled?: boolean | undefined;
        isBlocking?: boolean | undefined;
    } & Record<Exclude<keyof I, keyof WafProfileRule>, never>>(object: I): WafProfileRule;
};
export declare const WafProfileExclusionRule: {
    encode(message: WafProfileExclusionRule, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): WafProfileExclusionRule;
    fromJSON(object: any): WafProfileExclusionRule;
    toJSON(message: WafProfileExclusionRule): unknown;
    fromPartial<I extends {
        name?: string | undefined;
        description?: string | undefined;
        condition?: {
            authority?: {
                authorities?: {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                }[] | undefined;
            } | undefined;
            httpMethod?: {
                httpMethods?: {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                }[] | undefined;
            } | undefined;
            requestUri?: {
                path?: {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } | undefined;
                queries?: {
                    key?: string | undefined;
                    value?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                }[] | undefined;
            } | undefined;
            headers?: {
                name?: string | undefined;
                value?: {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } | undefined;
            }[] | undefined;
            sourceIp?: {
                ipRangesMatch?: {
                    ipRanges?: string[] | undefined;
                } | undefined;
                ipRangesNotMatch?: {
                    ipRanges?: string[] | undefined;
                } | undefined;
                geoIpMatch?: {
                    locations?: string[] | undefined;
                } | undefined;
                geoIpNotMatch?: {
                    locations?: string[] | undefined;
                } | undefined;
            } | undefined;
        } | undefined;
        excludeRules?: {
            excludeAll?: boolean | undefined;
            ruleIds?: string[] | undefined;
        } | undefined;
        logExcluded?: boolean | undefined;
    } & {
        name?: string | undefined;
        description?: string | undefined;
        condition?: ({
            authority?: {
                authorities?: {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                }[] | undefined;
            } | undefined;
            httpMethod?: {
                httpMethods?: {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                }[] | undefined;
            } | undefined;
            requestUri?: {
                path?: {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } | undefined;
                queries?: {
                    key?: string | undefined;
                    value?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                }[] | undefined;
            } | undefined;
            headers?: {
                name?: string | undefined;
                value?: {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } | undefined;
            }[] | undefined;
            sourceIp?: {
                ipRangesMatch?: {
                    ipRanges?: string[] | undefined;
                } | undefined;
                ipRangesNotMatch?: {
                    ipRanges?: string[] | undefined;
                } | undefined;
                geoIpMatch?: {
                    locations?: string[] | undefined;
                } | undefined;
                geoIpNotMatch?: {
                    locations?: string[] | undefined;
                } | undefined;
            } | undefined;
        } & {
            authority?: ({
                authorities?: {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                }[] | undefined;
            } & {
                authorities?: ({
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                }[] & ({
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } & {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } & Record<Exclude<keyof I["condition"]["authority"]["authorities"][number], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_StringMatcher>, never>)[] & Record<Exclude<keyof I["condition"]["authority"]["authorities"], keyof {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                }[]>, never>) | undefined;
            } & Record<Exclude<keyof I["condition"]["authority"], "authorities">, never>) | undefined;
            httpMethod?: ({
                httpMethods?: {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                }[] | undefined;
            } & {
                httpMethods?: ({
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                }[] & ({
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } & {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } & Record<Exclude<keyof I["condition"]["httpMethod"]["httpMethods"][number], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_StringMatcher>, never>)[] & Record<Exclude<keyof I["condition"]["httpMethod"]["httpMethods"], keyof {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                }[]>, never>) | undefined;
            } & Record<Exclude<keyof I["condition"]["httpMethod"], "httpMethods">, never>) | undefined;
            requestUri?: ({
                path?: {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } | undefined;
                queries?: {
                    key?: string | undefined;
                    value?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                }[] | undefined;
            } & {
                path?: ({
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } & {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } & Record<Exclude<keyof I["condition"]["requestUri"]["path"], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_StringMatcher>, never>) | undefined;
                queries?: ({
                    key?: string | undefined;
                    value?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                }[] & ({
                    key?: string | undefined;
                    value?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                } & {
                    key?: string | undefined;
                    value?: ({
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } & {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } & Record<Exclude<keyof I["condition"]["requestUri"]["queries"][number]["value"], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_StringMatcher>, never>) | undefined;
                } & Record<Exclude<keyof I["condition"]["requestUri"]["queries"][number], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_QueryMatcher>, never>)[] & Record<Exclude<keyof I["condition"]["requestUri"]["queries"], keyof {
                    key?: string | undefined;
                    value?: {
                        exactMatch?: string | undefined;
                        exactNotMatch?: string | undefined;
                        prefixMatch?: string | undefined;
                        prefixNotMatch?: string | undefined;
                        pireRegexMatch?: string | undefined;
                        pireRegexNotMatch?: string | undefined;
                    } | undefined;
                }[]>, never>) | undefined;
            } & Record<Exclude<keyof I["condition"]["requestUri"], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_RequestUriMatcher>, never>) | undefined;
            headers?: ({
                name?: string | undefined;
                value?: {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } | undefined;
            }[] & ({
                name?: string | undefined;
                value?: {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } | undefined;
            } & {
                name?: string | undefined;
                value?: ({
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } & {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } & Record<Exclude<keyof I["condition"]["headers"][number]["value"], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_StringMatcher>, never>) | undefined;
            } & Record<Exclude<keyof I["condition"]["headers"][number], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_HeaderMatcher>, never>)[] & Record<Exclude<keyof I["condition"]["headers"], keyof {
                name?: string | undefined;
                value?: {
                    exactMatch?: string | undefined;
                    exactNotMatch?: string | undefined;
                    prefixMatch?: string | undefined;
                    prefixNotMatch?: string | undefined;
                    pireRegexMatch?: string | undefined;
                    pireRegexNotMatch?: string | undefined;
                } | undefined;
            }[]>, never>) | undefined;
            sourceIp?: ({
                ipRangesMatch?: {
                    ipRanges?: string[] | undefined;
                } | undefined;
                ipRangesNotMatch?: {
                    ipRanges?: string[] | undefined;
                } | undefined;
                geoIpMatch?: {
                    locations?: string[] | undefined;
                } | undefined;
                geoIpNotMatch?: {
                    locations?: string[] | undefined;
                } | undefined;
            } & {
                ipRangesMatch?: ({
                    ipRanges?: string[] | undefined;
                } & {
                    ipRanges?: (string[] & string[] & Record<Exclude<keyof I["condition"]["sourceIp"]["ipRangesMatch"]["ipRanges"], keyof string[]>, never>) | undefined;
                } & Record<Exclude<keyof I["condition"]["sourceIp"]["ipRangesMatch"], "ipRanges">, never>) | undefined;
                ipRangesNotMatch?: ({
                    ipRanges?: string[] | undefined;
                } & {
                    ipRanges?: (string[] & string[] & Record<Exclude<keyof I["condition"]["sourceIp"]["ipRangesNotMatch"]["ipRanges"], keyof string[]>, never>) | undefined;
                } & Record<Exclude<keyof I["condition"]["sourceIp"]["ipRangesNotMatch"], "ipRanges">, never>) | undefined;
                geoIpMatch?: ({
                    locations?: string[] | undefined;
                } & {
                    locations?: (string[] & string[] & Record<Exclude<keyof I["condition"]["sourceIp"]["geoIpMatch"]["locations"], keyof string[]>, never>) | undefined;
                } & Record<Exclude<keyof I["condition"]["sourceIp"]["geoIpMatch"], "locations">, never>) | undefined;
                geoIpNotMatch?: ({
                    locations?: string[] | undefined;
                } & {
                    locations?: (string[] & string[] & Record<Exclude<keyof I["condition"]["sourceIp"]["geoIpNotMatch"]["locations"], keyof string[]>, never>) | undefined;
                } & Record<Exclude<keyof I["condition"]["sourceIp"]["geoIpNotMatch"], "locations">, never>) | undefined;
            } & Record<Exclude<keyof I["condition"]["sourceIp"], keyof import("../../../../../yandex/cloud/smartwebsecurity/v1/security_profile").Condition_IpMatcher>, never>) | undefined;
        } & Record<Exclude<keyof I["condition"], keyof Condition>, never>) | undefined;
        excludeRules?: ({
            excludeAll?: boolean | undefined;
            ruleIds?: string[] | undefined;
        } & {
            excludeAll?: boolean | undefined;
            ruleIds?: (string[] & string[] & Record<Exclude<keyof I["excludeRules"]["ruleIds"], keyof string[]>, never>) | undefined;
        } & Record<Exclude<keyof I["excludeRules"], keyof WafProfileExclusionRule_ExcludeRules>, never>) | undefined;
        logExcluded?: boolean | undefined;
    } & Record<Exclude<keyof I, keyof WafProfileExclusionRule>, never>>(object: I): WafProfileExclusionRule;
};
export declare const WafProfileExclusionRule_ExcludeRules: {
    encode(message: WafProfileExclusionRule_ExcludeRules, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): WafProfileExclusionRule_ExcludeRules;
    fromJSON(object: any): WafProfileExclusionRule_ExcludeRules;
    toJSON(message: WafProfileExclusionRule_ExcludeRules): unknown;
    fromPartial<I extends {
        excludeAll?: boolean | undefined;
        ruleIds?: string[] | undefined;
    } & {
        excludeAll?: boolean | undefined;
        ruleIds?: (string[] & string[] & Record<Exclude<keyof I["ruleIds"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof WafProfileExclusionRule_ExcludeRules>, never>>(object: I): WafProfileExclusionRule_ExcludeRules;
};
export declare const RuleSet: {
    encode(message: RuleSet, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RuleSet;
    fromJSON(object: any): RuleSet;
    toJSON(message: RuleSet): unknown;
    fromPartial<I extends {
        name?: string | undefined;
        version?: string | undefined;
    } & {
        name?: string | undefined;
        version?: string | undefined;
    } & Record<Exclude<keyof I, keyof RuleSet>, never>>(object: I): RuleSet;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;
export {};
