/// <reference types="@adonisjs/drive/build/adonis-typings" />
declare module '@ioc:Adonis/Core/Drive' {
    import { S3Client, S3ClientConfig } from '@aws-sdk/client-s3';
    /**
     * Configuration accepted by the R2 driver
     */
    type R2DriverConfig = S3ClientConfig & {
        driver: 'r2';
        visibility: 'public' | 'private';
        bucket: string;
        cdnUrl?: string;
        key?: string;
        secret?: string;
        accountId: string;
    };
    /**
     * The R2 driver implementation interface
     */
    interface R2DriverContract extends DriverContract {
        name: 'r2';
        adapter: S3Client;
        /**
         * Returns a new instance of the R2 driver with a custom runtime
         * bucket
         */
        bucket(bucket: string): R2DriverContract;
    }
    interface DriversList {
        r2: {
            implementation: R2DriverContract;
            config: R2DriverConfig;
        };
    }
}
