/// <reference types="node" />
import { FilesAdapter } from '../adapters/files.adapter';
import { BFastDatabaseOptions } from '../bfast-database.option';
import { Client } from 'minio';
import { PassThrough } from 'stream';
export declare class S3StorageFactory implements FilesAdapter {
    constructor(configAdapter: BFastDatabaseOptions);
    s3: Client;
    canHandleFileStream: boolean;
    isS3: boolean;
    createFile(filename: string, data: PassThrough, contentType: string, options: any): Promise<string>;
    deleteFile(filename: string): Promise<any>;
    getFileData(filename: string, asStream?: boolean): Promise<any>;
    getFileLocation(filename: string, configAdapter: BFastDatabaseOptions): Promise<string>;
    validateFilename(filename: string): Promise<any>;
    handleFileStream(filename: any, request: any, response: any, contentType: any): any;
    signedUrl(filename: string): Promise<string>;
    listFiles(query?: {
        prefix: string;
        size: number;
        after: string;
    }): Promise<any>;
    private init;
    private saveFile;
    private static getRegion;
    private createBucket;
}
