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