export type R2Config = {
    bucket: string;
    region?: string;
    accessKeyId: string;
    secretAccessKey: string;
    endpoint?: string;
    binding?: string;
};
export type R2MultipartUploadInfo = {
    key: string;
    uploadId: string;
};
export type R2UploadedPart = {
    partNumber: number;
    etag: string;
};
export declare const R2Driver: Readonly<{
    createMultipartUpload(config: R2Config, key: string, options?: unknown): Promise<R2MultipartUploadInfo>;
    uploadPart(config: R2Config, key: string, uploadId: string, partNumber: number, value: unknown, options?: unknown): Promise<R2UploadedPart>;
    completeMultipartUpload(config: R2Config, key: string, uploadId: string, uploadedParts: R2UploadedPart[]): Promise<string>;
    abortMultipartUpload(config: R2Config, key: string, uploadId: string): Promise<void>;
    put(config: R2Config, key: string, content: string | Buffer): Promise<string>;
    get(config: R2Config, key: string): Promise<Buffer>;
    exists(config: R2Config, key: string): Promise<boolean>;
    delete(config: R2Config, key: string): Promise<void>;
    url(config: R2Config, key: string): string;
    tempUrl(config: R2Config, key: string, options?: {
        expiresIn?: number;
        method?: "GET" | "PUT";
    }): string;
}>;
export default R2Driver;
//# sourceMappingURL=R2.d.ts.map