import { APIResource } from "../../../resource.js";
import * as Core from "../../../core.js";
export declare class Logging extends APIResource {
    /**
     * Update logging settings for the current Zero Trust account.
     *
     * @example
     * ```ts
     * const loggingSetting =
     *   await client.zeroTrust.gateway.logging.update({
     *     account_id: '699d98642c564d2e855e9661899b7252',
     *   });
     * ```
     */
    update(params: LoggingUpdateParams, options?: Core.RequestOptions): Core.APIPromise<LoggingSetting>;
    /**
     * Retrieve the current logging settings for the Zero Trust account.
     *
     * @example
     * ```ts
     * const loggingSetting =
     *   await client.zeroTrust.gateway.logging.get({
     *     account_id: '699d98642c564d2e855e9661899b7252',
     *   });
     * ```
     */
    get(params: LoggingGetParams, options?: Core.RequestOptions): Core.APIPromise<LoggingSetting>;
}
export interface LoggingSetting {
    /**
     * Indicate whether to redact personally identifiable information from activity
     * logging (PII fields include source IP, user email, user ID, device ID, URL,
     * referrer, and user agent).
     */
    redact_pii?: boolean;
    /**
     * Configure logging settings for each rule type.
     */
    settings_by_rule_type?: LoggingSetting.SettingsByRuleType;
}
export declare namespace LoggingSetting {
    /**
     * Configure logging settings for each rule type.
     */
    interface SettingsByRuleType {
        /**
         * Configure logging settings for DNS firewall.
         */
        dns?: SettingsByRuleType.DNS;
        /**
         * Configure logging settings for HTTP/HTTPS firewall.
         */
        http?: SettingsByRuleType.HTTP;
        /**
         * Configure logging settings for Network firewall.
         */
        l4?: SettingsByRuleType.L4;
    }
    namespace SettingsByRuleType {
        /**
         * Configure logging settings for DNS firewall.
         */
        interface DNS {
            /**
             * Specify whether to log all requests to this service.
             */
            log_all?: boolean;
            /**
             * Specify whether to log only blocking requests to this service.
             */
            log_blocks?: boolean;
        }
        /**
         * Configure logging settings for HTTP/HTTPS firewall.
         */
        interface HTTP {
            /**
             * Specify whether to log all requests to this service.
             */
            log_all?: boolean;
            /**
             * Specify whether to log only blocking requests to this service.
             */
            log_blocks?: boolean;
        }
        /**
         * Configure logging settings for Network firewall.
         */
        interface L4 {
            /**
             * Specify whether to log all requests to this service.
             */
            log_all?: boolean;
            /**
             * Specify whether to log only blocking requests to this service.
             */
            log_blocks?: boolean;
        }
    }
}
export interface LoggingUpdateParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param: Indicate whether to redact personally identifiable information from
     * activity logging (PII fields include source IP, user email, user ID, device ID,
     * URL, referrer, and user agent).
     */
    redact_pii?: boolean;
    /**
     * Body param: Configure logging settings for each rule type.
     */
    settings_by_rule_type?: LoggingUpdateParams.SettingsByRuleType;
}
export declare namespace LoggingUpdateParams {
    /**
     * Configure logging settings for each rule type.
     */
    interface SettingsByRuleType {
        /**
         * Configure logging settings for DNS firewall.
         */
        dns?: SettingsByRuleType.DNS;
        /**
         * Configure logging settings for HTTP/HTTPS firewall.
         */
        http?: SettingsByRuleType.HTTP;
        /**
         * Configure logging settings for Network firewall.
         */
        l4?: SettingsByRuleType.L4;
    }
    namespace SettingsByRuleType {
        /**
         * Configure logging settings for DNS firewall.
         */
        interface DNS {
            /**
             * Specify whether to log all requests to this service.
             */
            log_all?: boolean;
            /**
             * Specify whether to log only blocking requests to this service.
             */
            log_blocks?: boolean;
        }
        /**
         * Configure logging settings for HTTP/HTTPS firewall.
         */
        interface HTTP {
            /**
             * Specify whether to log all requests to this service.
             */
            log_all?: boolean;
            /**
             * Specify whether to log only blocking requests to this service.
             */
            log_blocks?: boolean;
        }
        /**
         * Configure logging settings for Network firewall.
         */
        interface L4 {
            /**
             * Specify whether to log all requests to this service.
             */
            log_all?: boolean;
            /**
             * Specify whether to log only blocking requests to this service.
             */
            log_blocks?: boolean;
        }
    }
}
export interface LoggingGetParams {
    account_id: string;
}
export declare namespace Logging {
    export { type LoggingSetting as LoggingSetting, type LoggingUpdateParams as LoggingUpdateParams, type LoggingGetParams as LoggingGetParams, };
}
//# sourceMappingURL=logging.d.ts.map