/**
 * Synapse REST API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import type { FileHandleAssociation } from './FileHandleAssociation';
/**
 * A multi-part upload that performs a copy of an existing file handle without data transfer from the client. Currently supports only copy from and to S3 buckets that live in the same region.
 * @export
 * @interface MultipartUploadCopyRequest
 */
export interface MultipartUploadCopyRequest {
    /**
     * Indicates which type of multi-part request to initiate. Currently supports <a href="${org.sagebionetworks.repo.model.file.MultipartUploadRequest}">MultipartUploadRequest</a> and <a href="${org.sagebionetworks.repo.model.file.MultipartUploadCopyRequest}">MultipartUploadCopyRequest</a>
     * @type {string}
     * @memberof MultipartUploadCopyRequest
     */
    concreteType: MultipartUploadCopyRequestConcreteTypeEnum;
    /**
     * In order to copy a file, the client must split the process into 'parts' and copy each part separately. This indicates the clients intended part size in bytes. Part size must be at least 5,242,880 bytes (5MB) with a max of 5,368,709,120 bytes (5GB). Also the maximum number of parts for a single file is 10K. The recommended part size for a single file copy should be: MAX(104857600, (originalFileSizeBytes/10000)).
     * @type {number}
     * @memberof MultipartUploadCopyRequest
     */
    partSizeBytes?: number;
    /**
     * The name of the file to be uploaded.
     * @type {string}
     * @memberof MultipartUploadCopyRequest
     */
    fileName?: string;
    /**
     * The identifier of the storage location where this file should be copied to. The user must be the owner of the storage location.
     * @type {number}
     * @memberof MultipartUploadCopyRequest
     */
    storageLocationId?: number;
    /**
     * Optional parameter.  When set to 'false' a preview will not be generated for the resulting file.
     * @type {boolean}
     * @memberof MultipartUploadCopyRequest
     */
    generatePreview?: boolean;
    /**
     *
     * @type {FileHandleAssociation}
     * @memberof MultipartUploadCopyRequest
     */
    sourceFileHandleAssociation?: FileHandleAssociation;
}
/**
 * @export
 */
export declare const MultipartUploadCopyRequestConcreteTypeEnum: {
    readonly org_sagebionetworks_repo_model_file_MultipartUploadCopyRequest: "org.sagebionetworks.repo.model.file.MultipartUploadCopyRequest";
};
export type MultipartUploadCopyRequestConcreteTypeEnum = typeof MultipartUploadCopyRequestConcreteTypeEnum[keyof typeof MultipartUploadCopyRequestConcreteTypeEnum];
/**
 * Check if a given object implements the MultipartUploadCopyRequest interface.
 */
export declare function instanceOfMultipartUploadCopyRequest(value: object): value is MultipartUploadCopyRequest;
export declare function MultipartUploadCopyRequestFromJSON(json: any): MultipartUploadCopyRequest;
export declare function MultipartUploadCopyRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): MultipartUploadCopyRequest;
export declare function MultipartUploadCopyRequestToJSON(json: any): MultipartUploadCopyRequest;
export declare function MultipartUploadCopyRequestToJSONTyped(value?: MultipartUploadCopyRequest | null, ignoreDiscriminator?: boolean): any;
