import { APIResource } from "../../../core/resource.js";
import { APIPromise } from "../../../core/api-promise.js";
import { RequestOptions } from "../../../internal/request-options.js";
export declare class BaseAlerting extends APIResource {
    static readonly _key: readonly ['zones', 'ct', 'alerting'];
    /**
     * Create or update the Certificate Transparency alerting subscription for a zone.
     * Enables or disables email notifications when certificates are issued for the
     * zone's domains. The `enabled` field is required on every request and controls
     * whether the subscription is active. The `emails` field is optional and, when
     * provided, replaces the stored recipient list for the zone. When `emails` is
     * omitted, the stored recipient list is preserved and only the enabled state is
     * toggled. A maximum of 100 email addresses may be configured per zone. Requests
     * that omit `enabled` are rejected with error code 1008. Subscribe and unsubscribe
     * notification emails are only sent for recipients whose effective subscription
     * state changes. Idempotent requests (no state change) send no notification email.
     *
     * @example
     * ```ts
     * const ctAlertingSubscription =
     *   await client.zones.ct.alerting.edit({
     *     zone_id: '023e105f4ecef8ad9ca31a8372d0c353',
     *     enabled: true,
     *   });
     * ```
     */
    edit(params: AlertingEditParams, options?: RequestOptions): APIPromise<CTAlertingSubscription>;
    /**
     * Retrieve the Certificate Transparency alerting subscription settings for a zone.
     * Returns whether CT monitoring is enabled and the list of email addresses that
     * receive alerts, if any have been configured.
     *
     * @example
     * ```ts
     * const ctAlertingSubscription =
     *   await client.zones.ct.alerting.get({
     *     zone_id: '023e105f4ecef8ad9ca31a8372d0c353',
     *   });
     * ```
     */
    get(params: AlertingGetParams, options?: RequestOptions): APIPromise<CTAlertingSubscription>;
}
export declare class Alerting extends BaseAlerting {
}
/**
 * Certificate Transparency alerting subscription settings for a zone.
 */
export interface CTAlertingSubscription {
    /**
     * Whether CT alerting is enabled for the zone.
     */
    enabled: boolean;
    /**
     * Email addresses that receive CT alert notifications for the zone. A maximum of
     * 100 addresses may be configured. Each address must be a valid RFC 5322 email
     * address and must not contain a comma.
     */
    emails?: Array<string>;
}
export interface AlertingEditParams {
    /**
     * Path param: Identifier.
     */
    zone_id: string;
    /**
     * Body param: Whether CT alerting is enabled for the zone.
     */
    enabled: boolean;
    /**
     * Body param: Email addresses that receive CT alert notifications for the zone. A
     * maximum of 100 addresses may be configured. Each address must be a valid RFC
     * 5322 email address and must not contain a comma.
     */
    emails?: Array<string>;
}
export interface AlertingGetParams {
    /**
     * Identifier.
     */
    zone_id: string;
}
export declare namespace Alerting {
    export { type CTAlertingSubscription as CTAlertingSubscription, type AlertingEditParams as AlertingEditParams, type AlertingGetParams as AlertingGetParams, };
}
//# sourceMappingURL=alerting.d.ts.map