import { OnModuleInit } from '@nestjs/common';
import { Readable } from 'stream';
import { IFileService, WriteOptions, CopyOptions, UrlOptions, ReadOptions, DeleteOptions, ExistsOptions } from './file-service.interface';
export declare class S3FileService implements IFileService, OnModuleInit {
    private readonly logger;
    private readonly s3ClientCache;
    private defaultRegion;
    private defaultBucket;
    private accessKey;
    private secretKey;
    onModuleInit(): void;
    private initializeS3Credentials;
    private getOrCreateClient;
    private getS3Client;
    private parsePath;
    read(path: string, options?: ReadOptions): Promise<Buffer>;
    readStream(path: string, options?: ReadOptions): Promise<Readable>;
    write(path: string, data: Buffer | string, options?: WriteOptions): Promise<string>;
    writeStream(path: string, stream: Readable, options?: WriteOptions): Promise<string>;
    delete(path: string, options?: DeleteOptions): Promise<void>;
    exists(path: string, options?: ExistsOptions): Promise<boolean>;
    copy(sourcePath: string, destinationPath: string, options?: CopyOptions): Promise<void>;
    getUrl(path: string, options?: UrlOptions): Promise<string>;
}
//# sourceMappingURL=s3-file.service.d.ts.map