import { FetchApi, FetchInit, Response } from './fetch_api'; export declare enum S3ApiErrorName { S3_API_BUNDLE_TOO_LARGE = "s3ApiBundleTooLarge", S3_API_FAILED = "s3ApiFailed" } export interface S3ApiErrorBundleTooLarge { type: S3ApiErrorName.S3_API_BUNDLE_TOO_LARGE; } export interface S3ApiErrorFailed { type: S3ApiErrorName.S3_API_FAILED; } export type S3ApiErrorInfo = S3ApiErrorBundleTooLarge | S3ApiErrorFailed; export interface S3SignedUploadInfo { endpointUrl: string; key: string | null; keyPrefix: string | null; params: { [key: string]: string; }; } export interface UploadS3Bundle { fileBuffer: Buffer; uploadInfo: S3SignedUploadInfo; } export declare class S3Api extends FetchApi { protected _invariantOkResponseAsync(init: FetchInit, response: Response): Promise; uploadBundleAsync({ fileBuffer, uploadInfo }: UploadS3Bundle): Promise; }