import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as QueuesAPI from 'cloudflare/resources/event-notifications/r2/configuration/queues';
export declare class Queues extends APIResource {
    /**
     * Define the rules for a given queue which will determine event notification
     * production.
     */
    update(bucketName: string, queueId: string, params: QueueUpdateParams, options?: Core.RequestOptions): Core.APIPromise<QueueUpdateResponse>;
    /**
     * Turn off all event notifications configured for delivery to a given queue. No
     * further notifications will be produced for the queue once complete.
     */
    delete(bucketName: string, queueId: string, params: QueueDeleteParams, options?: Core.RequestOptions): Core.APIPromise<QueueDeleteResponse>;
}
export interface QueueUpdateResponse {
    event_notification_detail_id?: string;
}
export type QueueDeleteResponse = unknown | Array<unknown> | string;
export interface QueueUpdateParams {
    /**
     * Path param: Identifier
     */
    account_id: string;
    /**
     * Body param: Array of rules to drive notifications
     */
    rules?: Array<QueueUpdateParams.Rule>;
}
export declare namespace QueueUpdateParams {
    interface Rule {
        /**
         * Array of R2 object actions that will trigger notifications
         */
        actions: Array<'PutObject' | 'CopyObject' | 'DeleteObject' | 'CompleteMultipartUpload' | 'AbortMultipartUpload'>;
        /**
         * Notifications will be sent only for objects with this prefix
         */
        prefix?: string;
        /**
         * Notifications will be sent only for objects with this suffix
         */
        suffix?: string;
    }
}
export interface QueueDeleteParams {
    /**
     * Identifier
     */
    account_id: string;
}
export declare namespace Queues {
    export import QueueUpdateResponse = QueuesAPI.QueueUpdateResponse;
    export import QueueDeleteResponse = QueuesAPI.QueueDeleteResponse;
    export import QueueUpdateParams = QueuesAPI.QueueUpdateParams;
    export import QueueDeleteParams = QueuesAPI.QueueDeleteParams;
}
//# sourceMappingURL=queues.d.ts.map