import { ClientSDK, RequestOptions } from "../lib/sdks.js";
import { AddBypassIpRequest, AddBypassIpResponseBody } from "../models/addbypassipop.js";
import { CreateSecurityFirewallConfigByConfigVersionActivateRequest, CreateSecurityFirewallConfigByConfigVersionActivateResponseBody } from "../models/createsecurityfirewallconfigbyconfigversionactivateop.js";
import { DeleteSecurityFirewallConfigByConfigVersionRequest, DeleteSecurityFirewallConfigByConfigVersionResponseBody } from "../models/deletesecurityfirewallconfigbyconfigversionop.js";
import { GenerateFirewallRuleRequest, GenerateFirewallRuleResponseBody } from "../models/generatefirewallruleop.js";
import { GetActiveAttackStatusRequest, GetActiveAttackStatusResponseBody } from "../models/getactiveattackstatusop.js";
import { GetBypassIpRequest, GetBypassIpResponseBody } from "../models/getbypassipop.js";
import { GetFirewallConfigRequest, GetFirewallConfigResponseBody } from "../models/getfirewallconfigop.js";
import { GetSecurityFirewallConfigResponseBody } from "../models/getsecurityfirewallconfigresponsebody.js";
import { GetSecurityFirewallEventsRequest, GetSecurityFirewallEventsResponseBody } from "../models/getsecurityfirewalleventsop.js";
import { PutFirewallConfigRequest, PutFirewallConfigResponseBody } from "../models/putfirewallconfigop.js";
import { RemoveBypassIpRequest, RemoveBypassIpResponseBody } from "../models/removebypassipop.js";
import { UpdateAttackChallengeModeRequest, UpdateAttackChallengeModeResponseBody } from "../models/updateattackchallengemodeop.js";
import { UpdateFirewallConfigRequest, UpdateFirewallConfigResponseBody } from "../models/updatefirewallconfigop.js";
export declare class Security extends ClientSDK {
    /**
     * Update Attack Challenge mode
     *
     * @remarks
     * Update the setting for determining if the project has Attack Challenge mode enabled.
     */
    updateAttackChallengeMode(request: UpdateAttackChallengeModeRequest, options?: RequestOptions): Promise<UpdateAttackChallengeModeResponseBody>;
    /**
     * Returns activated WAF config
     *
     * @remarks
     * Lists WAF configs for a project
     */
    getSecurityFirewallConfig(options?: RequestOptions): Promise<GetSecurityFirewallConfigResponseBody>;
    /**
     * Put Firewall Configuration
     *
     * @remarks
     * Set the firewall configuration to provided rules and settings. Creates or overwrite the existing firewall configuration.
     */
    putFirewallConfig(request: PutFirewallConfigRequest, options?: RequestOptions): Promise<PutFirewallConfigResponseBody>;
    /**
     * Update Firewall Configuration
     *
     * @remarks
     * Process updates to modify the existing firewall config for a project
     */
    updateFirewallConfig(request: UpdateFirewallConfigRequest, options?: RequestOptions): Promise<UpdateFirewallConfigResponseBody>;
    /**
     * Read Firewall Configuration
     *
     * @remarks
     * Retrieve the specified firewall configuration for a project. The deployed configVersion will be `active`
     */
    getFirewallConfig(request: GetFirewallConfigRequest, options?: RequestOptions): Promise<GetFirewallConfigResponseBody>;
    /**
     * Returns activated WAF config
     *
     * @remarks
     * Promotes a draft WAF config to an active config
     */
    deleteSecurityFirewallConfigByConfigVersion(request: DeleteSecurityFirewallConfigByConfigVersionRequest, options?: RequestOptions): Promise<DeleteSecurityFirewallConfigByConfigVersionResponseBody>;
    /**
     * Returns activated WAF config
     *
     * @remarks
     * Promotes a draft WAF config to an active config
     */
    createSecurityFirewallConfigByConfigVersionActivate(request: CreateSecurityFirewallConfigByConfigVersionActivateRequest, options?: RequestOptions): Promise<CreateSecurityFirewallConfigByConfigVersionActivateResponseBody>;
    /**
     * Read active attack data
     *
     * @remarks
     * Retrieve active attack data within the last N days (default: 1 day)
     */
    getActiveAttackStatus(request: GetActiveAttackStatusRequest, options?: RequestOptions): Promise<GetActiveAttackStatusResponseBody>;
    /**
     * Read System Bypass
     *
     * @remarks
     * Retrieve the system bypass rules configured for the specified project
     */
    getBypassIp(request: GetBypassIpRequest, options?: RequestOptions): Promise<GetBypassIpResponseBody>;
    /**
     * Create System Bypass Rule
     *
     * @remarks
     * Create new system bypass rules
     */
    addBypassIp(request: AddBypassIpRequest, options?: RequestOptions): Promise<AddBypassIpResponseBody>;
    /**
     * Remove System Bypass Rule
     *
     * @remarks
     * Remove system bypass rules
     */
    removeBypassIp(request: RemoveBypassIpRequest, options?: RequestOptions): Promise<RemoveBypassIpResponseBody>;
    /**
     * Read Firewall Actions by Project
     *
     * @remarks
     * Retrieve firewall actions for a project Rule names are resolved against the project's *current* active firewall configuration and the team's active rulesets, so a rule that has since been renamed reports its new name and one that has been deleted reports `null`. System rules such as `sys_dos_mitigation` and `ip_blocking` have no configured name and always report `null`.
     */
    getSecurityFirewallEvents(request: GetSecurityFirewallEventsRequest, options?: RequestOptions): Promise<GetSecurityFirewallEventsResponseBody>;
    /**
     * Generate a firewall rule from natural language
     *
     * @remarks
     * Generate a firewall rule from a natural language description.
     */
    generateFirewallRule(request: GenerateFirewallRuleRequest, options?: RequestOptions): Promise<GenerateFirewallRuleResponseBody>;
}
//# sourceMappingURL=security.d.ts.map