import { PeekedMessageItem, QueueClient } from "@azure/storage-queue";
import { ResourceURI } from "./resourceManager.js";
import { StatusMessage } from "./status.js";
declare class QueueDetails {
    readonly name: string;
    readonly service: QueueClient;
    constructor(name: string, service: QueueClient);
}
interface PeekParams {
    raw: boolean;
}
interface PopParams {
    raw: boolean;
    remove: boolean;
}
type Message = PeekedMessageItem | StatusMessage;
export declare class StatusQueue {
    readonly getQueuesFunc: () => Promise<ResourceURI[]>;
    readonly messageCls: typeof StatusMessage;
    constructor(getQueuesFunc: () => Promise<ResourceURI[]>, messageCls: typeof StatusMessage);
    _getQServices(queuesDetails: ResourceURI[]): QueueDetails[];
    isEmpty(): Promise<boolean>;
    decodeContent(content: string): string;
    deserializeMessage(m: PeekedMessageItem): StatusMessage;
    _peek(qs: QueueDetails[], n: number, options: PeekParams | null): Promise<{
        result: Message[];
        nonEmptyQs: QueueDetails[];
        done: boolean;
    }>;
    peek(n?: number, options?: PeekParams | null): Promise<Message[]>;
    _pop(qs: QueueDetails[], n: number, options: PopParams | null): Promise<{
        result: Message[] & {
            nonEmptyQs?: QueueDetails[];
        };
        nonEmptyQs: any[];
        done: boolean;
    }>;
    pop(n?: number, options?: PopParams | null): Promise<Message[]>;
}
export {};
//# sourceMappingURL=statusQ.d.ts.map