import { VendorConfiguration } from 'sanity-plugin-external-files';
export declare const s3Files: import("sanity").Plugin<UserConfig | undefined>;
interface UserConfig extends Pick<Partial<VendorConfiguration>, 'defaultAccept' | 'schemaPrefix'> {
    toolTitle?: string;
    /**
     * @optional
     * Credentials for accessing the S3 bucket.
     *
     * Leave this empty if you don't want to store credentials in the JS bundle of the Sanity studio, and instead prefer storing them in the dataset as a private document.
     * If empty, the user will be prompted to enter credentials when they first open the media library.
     *
     * This configuration can be partial: credentials not provided here will be prompted to be stored inside of Sanity.
     * For example, you may want to store the public-facing `bucketKey` and `bucketRegion` in the JS bundle, but keep `secretForValidating` in the Sanity dataset.
     */
    credentials?: Partial<S3Credentials>;
}
export interface S3Credentials {
    /** S3 bucket key */
    bucketKey?: string;
    /** S3 bucket region */
    bucketRegion?: string;
    /** HTTPS endpoint that returns S3's signed URLs for uploading objects from the browser */
    getSignedUrlEndpoint?: string;
    /** HTTPS endpoint for deleting an object in S3 */
    deleteObjectEndpoint?: string;
    /**
     * @optional
     * Folder to store files inside the bucket. If none provided, will upload files to the bucket's root.
     */
    folder?: string;
    /**
     * @optional
     * Secret for validating the signed URL request (optional)
     *
     * 🚨 Give preference to storing this value in Sanity by leaving this configuration empty.
     * When you populate it here, it'll show up in the JS bundle of the Sanity studio.
     */
    secretForValidating?: string;
}
export {};
