import { S3 } from "@aws-sdk/client-s3";
import BaseDownloader, { ProgressHandler, ThumbInfo } from "./BaseDownloader";
import { FileInfo } from "@newSdk/service/api/s3Client/getObject";
import { BucketInfoType } from "@newSdk/model/BucketInfo";
export default class AwsDownloader extends BaseDownloader {
    private client;
    getClient(): Promise<S3>;
    download(key: FileInfo, thumbInfo?: ThumbInfo, handler?: ProgressHandler): Promise<any>;
    downloadUrl(key: FileInfo, thumbInfo?: ThumbInfo, handler?: ProgressHandler): Promise<any>;
    headObject(key: FileInfo, thumbInfo?: ThumbInfo): Promise<any>;
    getObjectSize(key: FileInfo): Promise<number>;
    downloadThump(key: FileInfo, thumbInfo: ThumbInfo, handler?: ProgressHandler): Promise<any>;
    downloadStream(key: FileInfo, thumbInfo?: ThumbInfo): Promise<{
        body: ReadableStream;
        total: number;
    } | undefined>;
    getObjectKey(key: FileInfo, bucketInfo: BucketInfoType, isThumb: boolean): string;
}
