import { ChatContext } from './ChatContext';
import { ChatMessageWithStatus } from './types/ChatMessageWithStatus';
import type { CommunicationTokenCredential } from '@azure/communication-common';
/**
 * @private
 */
export declare class ResourceDownloadQueue {
    private _messagesNeedingResourceRetrieval;
    private _context;
    private isActive;
    private _credential;
    private _endpoint;
    private _requestsToCancel;
    constructor(context: ChatContext, authentication: {
        credential: CommunicationTokenCredential;
        endpoint: string;
    });
    containsMessageWithSameAttachments(message: ChatMessageWithStatus): boolean;
    addMessage(message: ChatMessageWithStatus): void;
    startQueue(threadId: string, operation: ImageRequest, options?: {
        singleUrl: string;
    }): Promise<void>;
    cancelAllRequests(): void;
    cancelRequest(url: string): void;
    private downloadSingleUrl;
    private downloadAllPreviewUrls;
    private downloadResource;
}
/**
 * @private
 */
export declare const fetchImageSource: (src: string, authentication: {
    credential: CommunicationTokenCredential;
    endpoint: string;
}, options: {
    abortController: AbortController;
    timeout?: number;
}) => Promise<string>;
interface ImageRequest {
    (request: string, authentication: {
        credential: CommunicationTokenCredential;
        endpoint: string;
    }, options: {
        abortController: AbortController;
        timeout?: number;
    }): Promise<string>;
}
export {};
//# sourceMappingURL=ResourceDownloadQueue.d.ts.map