import FileMetadata from "@microsoft/omnichannel-amsclient/lib/FileMetadata";
import FramedClient from "@microsoft/omnichannel-amsclient/lib/FramedClient";
interface FileScanResponse {
    status: string;
}
interface FileScanResult {
    fileMetadata: FileMetadata;
    scan: FileScanResponse;
    next?: any;
    activity?: any;
}
interface AMSFileScannerOptions {
    pollingInterval?: number;
    scanStatusRetrievalDelay?: number;
}
declare class AMSFileScanner {
    amsClient: FramedClient;
    scanResults: Map<string, FileScanResult> | null;
    private shouldQueueScan;
    private test;
    private options;
    constructor(amsClient: FramedClient, options?: AMSFileScannerOptions);
    queueScan(): Promise<void>;
    retrieveFileScanResult(id: string): FileScanResult | undefined;
    addOrUpdateFile(id: string, fileMetadata: FileMetadata, scan: FileScanResponse): void;
    addNext(id: string, next: Function): void;
    addActivity(id: string, activity: any): void;
    scanFileCallback(scanResult: FileScanResult, id: string): Promise<void>;
    scanFiles(): Promise<void>;
    end(): void;
    private retrieveFileBlob;
    private addAttachmentToActivity;
    renderAttachmentActivity(scanResult: FileScanResult, view_location: any): Promise<void>;
    renderMalwareActivity(scanResult: FileScanResult): Promise<void>;
}
export default AMSFileScanner;
