import { Request, S3 as AWSS3 } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSS3> = AWSS3[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSS3, Extras> = AWSS3[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class S3 {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "s3";
    readonly global: false;
    readonly category: "Storage";
    readonly topLevelCalls: readonly ["listBuckets"];
    abortMultipartUpload: (params: ParamsFrom<'abortMultipartUpload', Record<string, never>>) => Promise<ReturnTypeFrom<'abortMultipartUpload'>>;
    completeMultipartUpload: (params: ParamsFrom<'completeMultipartUpload', Record<string, never>>) => Promise<ReturnTypeFrom<'completeMultipartUpload'>>;
    copyObject: (params: ParamsFrom<'copyObject', Record<string, never>>) => Promise<ReturnTypeFrom<'copyObject'>>;
    createMultipartUpload: (params: ParamsFrom<'createMultipartUpload', Record<string, never>>) => Promise<ReturnTypeFrom<'createMultipartUpload'>>;
    deleteBucket: (params: ParamsFrom<'deleteBucket', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBucket'>>;
    deleteBucketAnalyticsConfiguration: (params: ParamsFrom<'deleteBucketAnalyticsConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBucketAnalyticsConfiguration'>>;
    deleteBucketCors: (params: ParamsFrom<'deleteBucketCors', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBucketCors'>>;
    deleteBucketEncryption: (params: ParamsFrom<'deleteBucketEncryption', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBucketEncryption'>>;
    deleteBucketIntelligentTieringConfiguration: (params: ParamsFrom<'deleteBucketIntelligentTieringConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBucketIntelligentTieringConfiguration'>>;
    deleteBucketInventoryConfiguration: (params: ParamsFrom<'deleteBucketInventoryConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBucketInventoryConfiguration'>>;
    deleteBucketLifecycle: (params: ParamsFrom<'deleteBucketLifecycle', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBucketLifecycle'>>;
    deleteBucketMetricsConfiguration: (params: ParamsFrom<'deleteBucketMetricsConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBucketMetricsConfiguration'>>;
    deleteBucketOwnershipControls: (params: ParamsFrom<'deleteBucketOwnershipControls', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBucketOwnershipControls'>>;
    deleteBucketPolicy: (params: ParamsFrom<'deleteBucketPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBucketPolicy'>>;
    deleteBucketReplication: (params: ParamsFrom<'deleteBucketReplication', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBucketReplication'>>;
    deleteBucketTagging: (params: ParamsFrom<'deleteBucketTagging', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBucketTagging'>>;
    deleteBucketWebsite: (params: ParamsFrom<'deleteBucketWebsite', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteBucketWebsite'>>;
    deleteObject: (params: ParamsFrom<'deleteObject', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteObject'>>;
    deleteObjectTagging: (params: ParamsFrom<'deleteObjectTagging', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteObjectTagging'>>;
    deleteObjects: (params: ParamsFrom<'deleteObjects', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteObjects'>>;
    deletePublicAccessBlock: (params: ParamsFrom<'deletePublicAccessBlock', Record<string, never>>) => Promise<ReturnTypeFrom<'deletePublicAccessBlock'>>;
    getBucketAccelerateConfiguration: (params: ParamsFrom<'getBucketAccelerateConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketAccelerateConfiguration'>>;
    getBucketAcl: (params: ParamsFrom<'getBucketAcl', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketAcl'>>;
    getBucketAnalyticsConfiguration: (params: ParamsFrom<'getBucketAnalyticsConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketAnalyticsConfiguration'>>;
    getBucketCors: (params: ParamsFrom<'getBucketCors', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketCors'>>;
    getBucketEncryption: (params: ParamsFrom<'getBucketEncryption', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketEncryption'>>;
    getBucketIntelligentTieringConfiguration: (params: ParamsFrom<'getBucketIntelligentTieringConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketIntelligentTieringConfiguration'>>;
    getBucketInventoryConfiguration: (params: ParamsFrom<'getBucketInventoryConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketInventoryConfiguration'>>;
    getBucketLifecycle: (params: ParamsFrom<'getBucketLifecycle', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketLifecycle'>>;
    getBucketLifecycleConfiguration: (params: ParamsFrom<'getBucketLifecycleConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketLifecycleConfiguration'>>;
    getBucketLocation: (params: ParamsFrom<'getBucketLocation', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketLocation'>>;
    getBucketLogging: (params: ParamsFrom<'getBucketLogging', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketLogging'>>;
    getBucketMetricsConfiguration: (params: ParamsFrom<'getBucketMetricsConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketMetricsConfiguration'>>;
    getBucketNotification: (params: ParamsFrom<'getBucketNotification', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketNotification'>>;
    getBucketNotificationConfiguration: (params: ParamsFrom<'getBucketNotificationConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketNotificationConfiguration'>>;
    getBucketOwnershipControls: (params: ParamsFrom<'getBucketOwnershipControls', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketOwnershipControls'>>;
    getBucketPolicy: (params: ParamsFrom<'getBucketPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketPolicy'>>;
    getBucketPolicyStatus: (params: ParamsFrom<'getBucketPolicyStatus', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketPolicyStatus'>>;
    getBucketReplication: (params: ParamsFrom<'getBucketReplication', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketReplication'>>;
    getBucketRequestPayment: (params: ParamsFrom<'getBucketRequestPayment', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketRequestPayment'>>;
    getBucketTagging: (params: ParamsFrom<'getBucketTagging', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketTagging'>>;
    getBucketVersioning: (params: ParamsFrom<'getBucketVersioning', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketVersioning'>>;
    getBucketWebsite: (params: ParamsFrom<'getBucketWebsite', Record<string, never>>) => Promise<ReturnTypeFrom<'getBucketWebsite'>>;
    getObject: (params: ParamsFrom<'getObject', Record<string, never>>) => Promise<ReturnTypeFrom<'getObject'>>;
    getObjectAcl: (params: ParamsFrom<'getObjectAcl', Record<string, never>>) => Promise<ReturnTypeFrom<'getObjectAcl'>>;
    getObjectAttributes: (params: ParamsFrom<'getObjectAttributes', Record<string, never>>) => Promise<ReturnTypeFrom<'getObjectAttributes'>>;
    getObjectLegalHold: (params: ParamsFrom<'getObjectLegalHold', Record<string, never>>) => Promise<ReturnTypeFrom<'getObjectLegalHold'>>;
    getObjectLockConfiguration: (params: ParamsFrom<'getObjectLockConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'getObjectLockConfiguration'>>;
    getObjectRetention: (params: ParamsFrom<'getObjectRetention', Record<string, never>>) => Promise<ReturnTypeFrom<'getObjectRetention'>>;
    getObjectTagging: (params: ParamsFrom<'getObjectTagging', Record<string, never>>) => Promise<ReturnTypeFrom<'getObjectTagging'>>;
    getObjectTorrent: (params: ParamsFrom<'getObjectTorrent', Record<string, never>>) => Promise<ReturnTypeFrom<'getObjectTorrent'>>;
    getPublicAccessBlock: (params: ParamsFrom<'getPublicAccessBlock', Record<string, never>>) => Promise<ReturnTypeFrom<'getPublicAccessBlock'>>;
    headBucket: (params: ParamsFrom<'headBucket', Record<string, never>>) => Promise<ReturnTypeFrom<'headBucket'>>;
    headObject: (params: ParamsFrom<'headObject', Record<string, never>>) => Promise<ReturnTypeFrom<'headObject'>>;
    listBucketAnalyticsConfigurations: (params: ParamsFrom<'listBucketAnalyticsConfigurations', Record<string, never>>) => Promise<ReturnTypeFrom<'listBucketAnalyticsConfigurations'>>;
    listBucketIntelligentTieringConfigurations: (params: ParamsFrom<'listBucketIntelligentTieringConfigurations', Record<string, never>>) => Promise<ReturnTypeFrom<'listBucketIntelligentTieringConfigurations'>>;
    listBucketInventoryConfigurations: (params: ParamsFrom<'listBucketInventoryConfigurations', Record<string, never>>) => Promise<ReturnTypeFrom<'listBucketInventoryConfigurations'>>;
    listBucketMetricsConfigurations: (params: ParamsFrom<'listBucketMetricsConfigurations', Record<string, never>>) => Promise<ReturnTypeFrom<'listBucketMetricsConfigurations'>>;
    listBuckets: (params: ParamsFrom<'listBuckets', Record<string, never>>) => Promise<ReturnTypeFrom<'listBuckets'>>;
    listMultipartUploads: (params: ParamsFrom<'listMultipartUploads', Record<string, never>>) => Promise<ReturnTypeFrom<'listMultipartUploads'>>;
    listObjectVersions: (params: ParamsFrom<'listObjectVersions', Record<string, never>>) => Promise<ReturnTypeFrom<'listObjectVersions'>>;
    listObjects: (params: ParamsFrom<'listObjects', Record<string, never>>) => Promise<ReturnTypeFrom<'listObjects'>>;
    listObjectsV2: (params: ParamsFrom<'listObjectsV2', Record<string, never>>) => Promise<ReturnTypeFrom<'listObjectsV2'>>;
    listParts(params: {
        [K in keyof ParamsFrom<'listParts', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listParts', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listParts'>]-?: ReturnTypeFrom<'listParts'>[K];
        }['Parts'];
    }>;
    putBucketAccelerateConfiguration: (params: ParamsFrom<'putBucketAccelerateConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketAccelerateConfiguration'>>;
    putBucketAcl: (params: ParamsFrom<'putBucketAcl', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketAcl'>>;
    putBucketAnalyticsConfiguration: (params: ParamsFrom<'putBucketAnalyticsConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketAnalyticsConfiguration'>>;
    putBucketCors: (params: ParamsFrom<'putBucketCors', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketCors'>>;
    putBucketEncryption: (params: ParamsFrom<'putBucketEncryption', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketEncryption'>>;
    putBucketIntelligentTieringConfiguration: (params: ParamsFrom<'putBucketIntelligentTieringConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketIntelligentTieringConfiguration'>>;
    putBucketInventoryConfiguration: (params: ParamsFrom<'putBucketInventoryConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketInventoryConfiguration'>>;
    putBucketLifecycle: (params: ParamsFrom<'putBucketLifecycle', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketLifecycle'>>;
    putBucketLifecycleConfiguration: (params: ParamsFrom<'putBucketLifecycleConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketLifecycleConfiguration'>>;
    putBucketLogging: (params: ParamsFrom<'putBucketLogging', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketLogging'>>;
    putBucketMetricsConfiguration: (params: ParamsFrom<'putBucketMetricsConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketMetricsConfiguration'>>;
    putBucketNotification: (params: ParamsFrom<'putBucketNotification', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketNotification'>>;
    putBucketNotificationConfiguration: (params: ParamsFrom<'putBucketNotificationConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketNotificationConfiguration'>>;
    putBucketOwnershipControls: (params: ParamsFrom<'putBucketOwnershipControls', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketOwnershipControls'>>;
    putBucketPolicy: (params: ParamsFrom<'putBucketPolicy', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketPolicy'>>;
    putBucketReplication: (params: ParamsFrom<'putBucketReplication', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketReplication'>>;
    putBucketRequestPayment: (params: ParamsFrom<'putBucketRequestPayment', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketRequestPayment'>>;
    putBucketTagging: (params: ParamsFrom<'putBucketTagging', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketTagging'>>;
    putBucketVersioning: (params: ParamsFrom<'putBucketVersioning', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketVersioning'>>;
    putBucketWebsite: (params: ParamsFrom<'putBucketWebsite', Record<string, never>>) => Promise<ReturnTypeFrom<'putBucketWebsite'>>;
    putObject: (params: ParamsFrom<'putObject', Record<string, never>>) => Promise<ReturnTypeFrom<'putObject'>>;
    putObjectAcl: (params: ParamsFrom<'putObjectAcl', Record<string, never>>) => Promise<ReturnTypeFrom<'putObjectAcl'>>;
    putObjectLegalHold: (params: ParamsFrom<'putObjectLegalHold', Record<string, never>>) => Promise<ReturnTypeFrom<'putObjectLegalHold'>>;
    putObjectLockConfiguration: (params: ParamsFrom<'putObjectLockConfiguration', Record<string, never>>) => Promise<ReturnTypeFrom<'putObjectLockConfiguration'>>;
    putObjectRetention: (params: ParamsFrom<'putObjectRetention', Record<string, never>>) => Promise<ReturnTypeFrom<'putObjectRetention'>>;
    putObjectTagging: (params: ParamsFrom<'putObjectTagging', Record<string, never>>) => Promise<ReturnTypeFrom<'putObjectTagging'>>;
    putPublicAccessBlock: (params: ParamsFrom<'putPublicAccessBlock', Record<string, never>>) => Promise<ReturnTypeFrom<'putPublicAccessBlock'>>;
    restoreObject: (params: ParamsFrom<'restoreObject', Record<string, never>>) => Promise<ReturnTypeFrom<'restoreObject'>>;
    selectObjectContent: (params: ParamsFrom<'selectObjectContent', Record<string, never>>) => Promise<ReturnTypeFrom<'selectObjectContent'>>;
    uploadPart: (params: ParamsFrom<'uploadPart', Record<string, never>>) => Promise<ReturnTypeFrom<'uploadPart'>>;
    uploadPartCopy: (params: ParamsFrom<'uploadPartCopy', Record<string, never>>) => Promise<ReturnTypeFrom<'uploadPartCopy'>>;
    static fromClient(client: AWSS3): S3;
    static client(options?: AWSS3.Types.ClientConfiguration): S3;
}
export {};
