/// <reference types="node" />
import { FilesAdapter } from '../adapters/files';
import { BFastOptions } from '../bfast-option';
import { Client } from 'minio';
import { Buffer } from "buffer";
import { Storage } from "../models/storage";
import { ReadableStream } from 'stream/web';
export declare class S3StorageFactory implements FilesAdapter {
    s3: Client;
    canHandleFileStream: boolean;
    isS3: boolean;
    createFile(name: string, size: number, data: Buffer, contentType: string, pn: boolean, options: BFastOptions): Promise<Storage<any>>;
    deleteFile(filename: string, options: BFastOptions): Promise<any>;
    fileInfo(name: string, options: BFastOptions): Promise<Storage<any>>;
    getFileLocation(filename: string, configAdapter: BFastOptions): Promise<string>;
    validateFilename(filename: string): string;
    handleFileStream(name: string, req: any, res: any, contentType: any, options: BFastOptions): any;
    signedUrl(filename: string, options: BFastOptions): Promise<string>;
    listFiles(query: {
        prefix: string;
        size: number;
        after: string;
    }, options: BFastOptions): Promise<any>;
    init(options: BFastOptions): Promise<void>;
    getFileData(id: string, asStream: boolean, options: BFastOptions): Promise<any>;
    getFileBuffer(file: any, options: BFastOptions): Promise<Buffer>;
    getFileStream(id: any, options: BFastOptions): Promise<ReadableStream>;
    private saveFile;
    private static getRegion;
    private createBucket;
}
