import { Storage, ReadBufferFileOptions, ReadStreamFileOptions, InputFile, StorageFile, WriteFileOptions } from '@rytass/storages';
import { Readable } from 'stream';
import { PresignedURLOptions, StorageR2Options } from './typings';
export declare class StorageR2Service extends Storage<StorageR2Options> {
    private readonly bucket;
    private readonly client;
    private readonly parseSignedURL;
    constructor(options: StorageR2Options);
    url(key: string, options?: PresignedURLOptions): Promise<string>;
    read(key: string): Promise<Readable>;
    read(key: string, options: ReadBufferFileOptions): Promise<Buffer>;
    read(key: string, options: ReadStreamFileOptions): Promise<Readable>;
    private writeStreamFile;
    writeBufferFile(buffer: Buffer, options?: WriteFileOptions): Promise<StorageFile>;
    write(file: InputFile, options?: WriteFileOptions): Promise<StorageFile>;
    batchWrite(files: InputFile[]): Promise<StorageFile[]>;
    remove(key: string): Promise<void>;
    isExists(key: string): Promise<boolean>;
}
