import { APIResource } from "../../core/resource.js";
import * as QueuesAPI from "./queues.js";
import { APIPromise } from "../../core/api-promise.js";
import { RequestOptions } from "../../internal/request-options.js";
export declare class BasePurge extends APIResource {
    static readonly _key: readonly ['queues', 'purge'];
    /**
     * Starts a purge that deletes all messages from a Queue.
     *
     * @example
     * ```ts
     * const queue = await client.queues.purge.start(
     *   '023e105f4ecef8ad9ca31a8372d0c353',
     *   { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
     * );
     * ```
     */
    start(queueID: string, params: PurgeStartParams, options?: RequestOptions): APIPromise<QueuesAPI.Queue>;
    /**
     * Returns the status of a Queue purge operation.
     *
     * @example
     * ```ts
     * const response = await client.queues.purge.status(
     *   '023e105f4ecef8ad9ca31a8372d0c353',
     *   { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
     * );
     * ```
     */
    status(queueID: string, params: PurgeStatusParams, options?: RequestOptions): APIPromise<PurgeStatusResponse>;
}
export declare class Purge extends BasePurge {
}
export interface PurgeStatusResponse {
    /**
     * Indicates if the last purge operation completed successfully.
     */
    completed?: string;
    /**
     * Timestamp when the last purge operation started.
     */
    started_at?: string;
}
export interface PurgeStartParams {
    /**
     * Path param: A Resource identifier.
     */
    account_id: string;
    /**
     * Body param: Confirms that all messages will be permanently deleted.
     */
    delete_messages_permanently?: boolean;
}
export interface PurgeStatusParams {
    /**
     * A Resource identifier.
     */
    account_id: string;
}
export declare namespace Purge {
    export { type PurgeStatusResponse as PurgeStatusResponse, type PurgeStartParams as PurgeStartParams, type PurgeStatusParams as PurgeStatusParams, };
}
//# sourceMappingURL=purge.d.ts.map