import * as Core from 'cloudflaredev/core';
import { APIResource } from 'cloudflaredev/resource';
import * as ConsumersAPI from 'cloudflaredev/resources/queues/consumers';
import * as MessagesAPI from 'cloudflaredev/resources/queues/messages';
import { SinglePage } from 'cloudflaredev/pagination';
export declare class Queues extends APIResource {
    consumers: ConsumersAPI.Consumers;
    messages: MessagesAPI.Messages;
    /**
     * Creates a new queue.
     */
    create(params: QueueCreateParams, options?: Core.RequestOptions): Core.APIPromise<QueueCreated | null>;
    /**
     * Updates a queue.
     */
    update(queueId: string, params: QueueUpdateParams, options?: Core.RequestOptions): Core.APIPromise<QueueUpdated | null>;
    /**
     * Returns the queues owned by an account.
     */
    list(params: QueueListParams, options?: Core.RequestOptions): Core.PagePromise<QueuesSinglePage, Queue>;
    /**
     * Deletes a queue.
     */
    delete(queueId: string, params: QueueDeleteParams, options?: Core.RequestOptions): Core.APIPromise<QueueDeleteResponse | null>;
    /**
     * Get information about a specific queue.
     */
    get(queueId: string, params: QueueGetParams, options?: Core.RequestOptions): Core.APIPromise<Queue | null>;
}
export declare class QueuesSinglePage extends SinglePage<Queue> {
}
export interface Queue {
    consumers?: unknown;
    consumers_total_count?: unknown;
    created_on?: unknown;
    modified_on?: unknown;
    producers?: unknown;
    producers_total_count?: unknown;
    queue_id?: string;
    queue_name?: string;
}
export interface QueueCreated {
    created_on?: unknown;
    modified_on?: unknown;
    queue_id?: unknown;
    queue_name?: string;
}
export interface QueueUpdated {
    created_on?: unknown;
    modified_on?: unknown;
    queue_id?: unknown;
    queue_name?: string;
}
export type QueueDeleteResponse = unknown | Array<unknown> | string;
export interface QueueCreateParams {
    /**
     * Path param: Identifier
     */
    account_id: string;
    /**
     * Body param:
     */
    body: unknown;
}
export interface QueueUpdateParams {
    /**
     * Path param: Identifier
     */
    account_id: string;
    /**
     * Body param:
     */
    body: unknown;
}
export interface QueueListParams {
    /**
     * Identifier
     */
    account_id: string;
}
export interface QueueDeleteParams {
    /**
     * Identifier
     */
    account_id: string;
}
export interface QueueGetParams {
    /**
     * Identifier
     */
    account_id: string;
}
export declare namespace Queues {
    export import Consumers = ConsumersAPI.Consumers;
    export import Consumer = ConsumersAPI.Consumer;
    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;
    export import Messages = MessagesAPI.Messages;
    export import MessageAckResponse = MessagesAPI.MessageAckResponse;
    export import MessagePullResponse = MessagesAPI.MessagePullResponse;
    export import MessageAckParams = MessagesAPI.MessageAckParams;
    export import MessagePullParams = MessagesAPI.MessagePullParams;
}
//# sourceMappingURL=queues.d.ts.map