import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as ConsumersAPI from 'cloudflare/resources/queues/consumers';
export declare class Consumers extends APIResource {
    /**
     * Creates a new consumer for a queue.
     */
    create(queueId: string, params: ConsumerCreateParams, options?: Core.RequestOptions): Core.APIPromise<ConsumerCreateResponse | null>;
    /**
     * Updates the consumer for a queue, or creates one if it does not exist.
     */
    update(queueId: string, consumerId: string, params: ConsumerUpdateParams, options?: Core.RequestOptions): Core.APIPromise<ConsumerUpdateResponse | null>;
    /**
     * Deletes the consumer for a queue.
     */
    delete(queueId: string, consumerId: string, params: ConsumerDeleteParams, options?: Core.RequestOptions): Core.APIPromise<ConsumerDeleteResponse | null>;
    /**
     * Returns the consumers for a queue.
     */
    get(queueId: string, params: ConsumerGetParams, options?: Core.RequestOptions): Core.APIPromise<ConsumerGetResponse | null>;
}
export interface ConsumerCreateResponse {
    created_on?: unknown;
    dead_letter_queue?: string;
    environment?: unknown;
    queue_name?: unknown;
    script_name?: unknown;
    settings?: ConsumerCreateResponse.Settings;
}
export declare namespace ConsumerCreateResponse {
    interface Settings {
        /**
         * The maximum number of messages to include in a batch
         */
        batch_size?: number;
        max_retries?: number;
        max_wait_time_ms?: number;
    }
}
export interface ConsumerUpdateResponse {
    created_on?: unknown;
    dead_letter_queue?: string;
    environment?: unknown;
    queue_name?: unknown;
    script_name?: unknown;
    settings?: ConsumerUpdateResponse.Settings;
}
export declare namespace ConsumerUpdateResponse {
    interface Settings {
        batch_size?: number;
        max_retries?: number;
        max_wait_time_ms?: number;
    }
}
export type ConsumerDeleteResponse = unknown | Array<unknown> | string;
export type ConsumerGetResponse = Array<ConsumerGetResponse.ConsumerGetResponseItem>;
export declare namespace ConsumerGetResponse {
    interface ConsumerGetResponseItem {
        created_on?: unknown;
        environment?: unknown;
        queue_name?: unknown;
        service?: unknown;
        settings?: ConsumerGetResponseItem.Settings;
    }
    namespace ConsumerGetResponseItem {
        interface Settings {
            /**
             * The maximum number of messages to include in a batch
             */
            batch_size?: number;
            max_retries?: number;
            max_wait_time_ms?: number;
        }
    }
}
export interface ConsumerCreateParams {
    /**
     * Path param: Identifier
     */
    account_id: string;
    /**
     * Body param:
     */
    body: unknown;
}
export interface ConsumerUpdateParams {
    /**
     * Path param: Identifier
     */
    account_id: string;
    /**
     * Body param:
     */
    body: unknown;
}
export interface ConsumerDeleteParams {
    /**
     * Identifier
     */
    account_id: string;
}
export interface ConsumerGetParams {
    /**
     * Identifier
     */
    account_id: string;
}
export declare namespace Consumers {
    export import ConsumerCreateResponse = ConsumersAPI.ConsumerCreateResponse;
    export import ConsumerUpdateResponse = ConsumersAPI.ConsumerUpdateResponse;
    export import ConsumerDeleteResponse = ConsumersAPI.ConsumerDeleteResponse;
    export import ConsumerGetResponse = ConsumersAPI.ConsumerGetResponse;
    export import ConsumerCreateParams = ConsumersAPI.ConsumerCreateParams;
    export import ConsumerUpdateParams = ConsumersAPI.ConsumerUpdateParams;
    export import ConsumerDeleteParams = ConsumersAPI.ConsumerDeleteParams;
    export import ConsumerGetParams = ConsumersAPI.ConsumerGetParams;
}
//# sourceMappingURL=consumers.d.ts.map