import { S3, S3Client } from '@aws-sdk/client-s3';
import { Readable } from 'stream';
import { AbstractProvider } from './abstract.provider';
export declare class S3Provider extends AbstractProvider {
    private setting;
    private S3;
    private S3Client;
    constructor(setting: Record<string, string>);
    private resolveS3Key;
    buffer(filepath: string): Promise<Buffer>;
    initValidation(): Promise<void>;
    getClient(): Promise<S3>;
    getS3Client(): Promise<S3Client>;
    uploadFromString(destination: string, filename: string, fileContent: string): Promise<any>;
    upload(destination: string, file: MulterFile): Promise<any>;
    uploadFromPath(destination: string, filePath: string, options?: {
        filename?: string;
        mimetype?: string;
    }): Promise<any>;
    delete(filepath: string): Promise<any>;
    readStream(filepath: string): Promise<Readable>;
    metaData(filepath: string): Promise<any>;
    tempURL(filepath: string, expires?: number): Promise<string>;
}
//# sourceMappingURL=s3.provider.d.ts.map