import { BaseResourceAPI, CDFHttpClient, CursorAndAsyncIterator, IdEitherWithInstance, MetadataMap } from '@cognite/sdk-core'; import { ExternalFileInfo, FileAggregate, FileAggregateQuery, FileChangeUpdate, FileContent, FileInfo, FileLink, FileRequestFilter, FileUploadResponse, FilesSearchFilter, IdEither, IgnoreUnknownIds } from '../../types'; import { FilesMultipartUploadSessionAPI } from './filesMultipartUploadSessionApi'; export declare class FilesAPI extends BaseResourceAPI { private limits; private _client; private _map; private _baseUrl; constructor(...args: [string, CDFHttpClient, MetadataMap]); /** * Specify that dates should be parsed in requests and responses * @hidden */ protected getDateProps(): [string[], string[]]; /** * [Upload a file](https://doc.cognitedata.com/api/v1/#operation/initFileUpload) * * ```js * const fileContent = 'file data here'; // can also be of type ArrayBuffer, Buffer, Blob, File or any * // automatic upload: * const file = await client.files.upload({name: 'examplefile.jpg', mimeType: 'image/jpeg'}, fileContent); * * // manual with uploadUrl: * const file2 = await client.files.upload({name: 'examplefile.jpg', mimeType: 'image/jpeg'}); * // then upload using the file.uploadUrl * ``` */ upload: (fileInfo: ExternalFileInfo, fileContent?: FileContent, overwrite?: boolean, waitUntilAcknowledged?: boolean) => Promise; /** * [List files](https://doc.cognitedata.com/api/v1/#operation/advancedListFiles) * * * ```js * const files = await client.files.list({filter: {mimeType: 'image/png'}}); * ``` */ list: (scope?: FileRequestFilter) => CursorAndAsyncIterator; /** * [Aggregate files](https://docs.cognite.com/api/v1/#operation/aggregateFiles) * * ```js * const aggregates = await client.files.aggregate({ filter: { uploaded: true } }); * console.log('Number of uploaded files: ', aggregates[0].count) * ``` */ aggregate: (query: FileAggregateQuery) => Promise; /** * [Retrieve files](https://doc.cognitedata.com/api/v1/#operation/byIdsFiles) * * * ```js * const files = await client.files.retrieve([{id: 123}, {externalId: 'abc'}]); * ``` */ retrieve: (ids: IdEitherWithInstance[], params?: FileRetrieveParams) => Promise; /** * [Update files](https://doc.cognitedata.com/api/v1/#operation/updateFiles) * * ```js * const files = await client.files.update([{ * id: 123, * update: { * source: { set: 'new source' } * } * }]); * ``` */ update: (changes: FileChangeUpdate[]) => Promise; /** * [Search for files](https://doc.cognitedata.com/api/v1/#operation/searchFiles) * * ```js * const files = await client.files.search({ * filter: { * mimeType: 'image/jpeg', * }, * search: { * name: 'Pump' * } * }); * ``` */ search: (query: FilesSearchFilter) => Promise; /** * [Delete files](https://doc.cognitedata.com/api/v1/#operation/deleteFiles) * * ```js * await client.files.delete([{id: 123}, {externalId: 'abc'}]); * ``` */ delete: (ids: IdEither[]) => Promise<{}>; /** * [Get download urls](https://doc.cognitedata.com/api/v1/#operation/downloadLinks) * * ```js * await client.files.getDownloadUrls([{id: 123}, {externalId: 'abc'}]); * ``` */ getDownloadUrls: (ids: IdEitherWithInstance[]) => Promise<(FileLink & IdEitherWithInstance)[]>; private uploadEndpoint; private uploadFile; private waitUntilFileIsUploaded; private getDownloadUrlsEndpoint; /** * [Init a multipart file upload](https://api-docs.cognite.com/20230101/tag/Files/operation/initMultiPartUpload) * * ```js * // Each file part must be larger than 5 MiB, and smaller than 4000 MiB. The file part for the last uploadURL can be smaller than 5 MiB. * const numberOfParts = 5; * // automatic upload: * const multiPartUploadApi = await client.files.multipartUploadSession({name: 'examplefile.jpg', mimeType: 'image/jpeg'}, numberOfParts); * ``` */ multipartUploadSession(fileInfo: ExternalFileInfo, parts: number, overwrite?: boolean): Promise; private getMultipartUploadSession; } export type FileRetrieveParams = IgnoreUnknownIds;