import { UploadedFile } from 'express-fileupload';
import * as minio from 'minio';
import { ApplicationOptionType } from '..';
import { UploadedFileType } from '@/types/UploadedFileType';
import { RemoveOptions } from 'minio';
export default class Uploader {
    static client: minio.Client;
    constructor();
    /**
     * Initializes the minIO client instance
     */
    static init(options: ApplicationOptionType): Promise<void>;
    /**
     * checks .env variables if properly configured
     */
    static hasValidConfig(options: ApplicationOptionType): boolean;
    /**
     *
     * @param bucket {string} The bucket name in minIO
     * @param dir {string} The directory where the files are stored
     * @param uploads {Array<UploadedFile> | UploadedFile} file(s) to be uploaded
     * @returns
     */
    static upload(bucket: string, dir: string, uploads: Array<UploadedFile> | UploadedFile): Promise<Array<UploadedFileType> | UploadedFileType>;
    /**
     *
     * @param bucket {string} bucket name
     * @param file {string} file directory
     */
    preview(bucket: string, file: string): Promise<void>;
    static delete(bucketName: string, objectName: string, removeOpts?: RemoveOptions): Promise<void>;
}
//# sourceMappingURL=Uploader.d.ts.map