import { AttributeValue, ElementBatchCreateData, ElementData, FileBatchResponse, Operation, RestApiLink } from '../../interfaces'; import { Api } from '../api'; interface AttributesBatch { elements: THash[]; metadata: TAttr[]; } export interface BatchMetadata { elements: { [hash in H]: { element: ElementData; children?: ElementData[]; }; }; } export type BatchCreateResponse = { element: { hash: string; links: RestApiLink[]; }; }[]; export declare class Batch { api: Api; constructor(api: Api); getBatchAttributes(data: AttributesBatch): Promise, BatchMetadata>>; createElements(data: ElementBatchCreateData[]): Promise>; batchFiles(fileBatchData: FilesBatchPostData[]): Promise>; batchEditAttributesV2(data: IBatchEditAttributeDataV2[]): Promise>; batchEditAttributesV1(data: IBatchEditAttributeDataV1[]): Promise>; } export interface FilesBatchPostData { element: { type: string; hash: string; }; files: FileToSign[]; organization: { id: string; }; } export interface FileToSign { file: { filename: File['name']; file_size: File['size']; md5: string; contentType?: string; }; attribute: { id: string; hash?: string; }; } export interface IBatchEditAttributeDataV1 { organization: { id: string; }; element: { type: string; hash: string; }; attributes: { [x: string]: AttributeValue; }; } export interface SavedElementData { organization: { id: string; }; operations: Array; parent?: { hash: string; }; } export interface IBatchEditAttributeDataV2 extends SavedElementData { element: { hash: string; type: string; }; } export {};