import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as CatchAllsAPI from 'cloudflare/resources/email-routing/rules/catch-alls';
export declare class CatchAlls extends APIResource {
    /**
     * Enable or disable catch-all routing rule, or change action to forward to
     * specific destination address.
     */
    update(zoneIdentifier: string, body: CatchAllUpdateParams, options?: Core.RequestOptions): Core.APIPromise<EmailCatchAllRule>;
    /**
     * Get information on the default catch-all routing rule.
     */
    get(zoneIdentifier: string, options?: Core.RequestOptions): Core.APIPromise<EmailCatchAllRule>;
}
export interface EmailCatchAllRule {
    /**
     * Routing rule identifier.
     */
    id?: string;
    /**
     * List actions for the catch-all routing rule.
     */
    actions?: Array<EmailCatchAllRule.Action>;
    /**
     * Routing rule status.
     */
    enabled?: true | false;
    /**
     * List of matchers for the catch-all routing rule.
     */
    matchers?: Array<EmailCatchAllRule.Matcher>;
    /**
     * Routing rule name.
     */
    name?: string;
    /**
     * @deprecated: Routing rule tag. (Deprecated, replaced by routing rule identifier)
     */
    tag?: string;
}
export declare namespace EmailCatchAllRule {
    /**
     * Action for the catch-all routing rule.
     */
    interface Action {
        /**
         * Type of action for catch-all rule.
         */
        type: 'drop' | 'forward' | 'worker';
        value?: Array<string>;
    }
    /**
     * Matcher for catch-all routing rule.
     */
    interface Matcher {
        /**
         * Type of matcher. Default is 'all'.
         */
        type: 'all';
    }
}
export interface CatchAllUpdateParams {
    /**
     * List actions for the catch-all routing rule.
     */
    actions: Array<CatchAllUpdateParams.Action>;
    /**
     * List of matchers for the catch-all routing rule.
     */
    matchers: Array<CatchAllUpdateParams.Matcher>;
    /**
     * Routing rule status.
     */
    enabled?: true | false;
    /**
     * Routing rule name.
     */
    name?: string;
}
export declare namespace CatchAllUpdateParams {
    /**
     * Action for the catch-all routing rule.
     */
    interface Action {
        /**
         * Type of action for catch-all rule.
         */
        type: 'drop' | 'forward' | 'worker';
        value?: Array<string>;
    }
    /**
     * Matcher for catch-all routing rule.
     */
    interface Matcher {
        /**
         * Type of matcher. Default is 'all'.
         */
        type: 'all';
    }
}
export declare namespace CatchAlls {
    export import EmailCatchAllRule = CatchAllsAPI.EmailCatchAllRule;
    export import CatchAllUpdateParams = CatchAllsAPI.CatchAllUpdateParams;
}
//# sourceMappingURL=catch-alls.d.ts.map