import { ApiRepository } from '../../../core/infra/repositories/ApiRepository'; import { IFilesRepository } from '../../domain/repositories/IFilesRepository'; import { FileModel as FileModel } from '../../domain/models/FileModel'; import { FilesSubset } from '../../domain/models/FilesSubset'; import { FileDataTable } from '../../domain/models/FileDataTable'; import { FileUserPermissions } from '../../domain/models/FileUserPermissions'; import { FileSearchCriteria, FileOrderCriteria } from '../../domain/models/FileCriteria'; import { FileCounts } from '../../domain/models/FileCounts'; import { FileDownloadSizeMode } from '../../domain/models/FileDownloadSizeMode'; import { Dataset } from '../../../datasets'; import { FileUploadDestination } from '../../domain/models/FileUploadDestination'; import { UploadedFileDTO } from '../../domain/dtos/UploadedFileDTO'; import { UpdateFileMetadataDTO } from '../../domain/dtos/UpdateFileMetadataDTO'; import { RestrictFileDTO } from '../../domain/dtos/RestrictFileDTO'; import { FileVersionSummarySubset } from '../../domain/models/FileVersionSummaryInfo'; export interface GetFilesQueryParams { includeDeaccessioned: boolean; limit?: number; offset?: number; orderCriteria?: string; contentType?: string; accessStatus?: string; categoryName?: string; tabularTagName?: string; searchText?: string; } export interface GetFilesTotalDownloadSizeQueryParams { includeDeaccessioned: boolean; mode?: string; contentType?: string; accessStatus?: string; categoryName?: string; tabularTagName?: string; searchText?: string; } export interface UploadedFileRequestBody { fileName: string; checksum: ChecksumRequestBody; mimeType: string; storageIdentifier: string; description?: string; directoryLabel?: string; categories?: string[]; restrict?: boolean; forceReplace?: boolean; } export interface ChecksumRequestBody { '@value': string; '@type': string; } export declare class FilesRepository extends ApiRepository implements IFilesRepository { private readonly datasetsResourceName; private readonly filesResourceName; private readonly accessResourceName; getDatasetFiles(datasetId: number | string, datasetVersionId: string, includeDeaccessioned: boolean, fileOrderCriteria: FileOrderCriteria, limit?: number, offset?: number, fileSearchCriteria?: FileSearchCriteria): Promise; getDatasetFileCounts(datasetId: string | number, datasetVersionId: string, includeDeaccessioned: boolean, fileSearchCriteria?: FileSearchCriteria): Promise; getDatasetFilesTotalDownloadSize(datasetId: number | string, datasetVersionId: string, includeDeaccessioned: boolean, fileDownloadSizeMode: FileDownloadSizeMode, fileSearchCriteria?: FileSearchCriteria): Promise; getFileDownloadCount(fileId: number | string): Promise; getFileUserPermissions(fileId: number | string): Promise; getFileDataTables(fileId: string | number): Promise; getFile(fileId: number | string, datasetVersionId: string, returnDatasetVersion: boolean, includeDeaccessioned: boolean): Promise; getFileCitation(fileId: number | string, datasetVersionId: string, includeDeaccessioned: boolean): Promise; getFileUploadDestination(datasetId: number | string, file: File): Promise; addUploadedFilesToDataset(datasetId: number | string, uploadedFileDTOs: UploadedFileDTO[]): Promise; private applyFileSearchCriteriaToQueryParams; deleteFile(fileId: number | string): Promise; replaceFile(fileId: number | string, uploadedFileDTO: UploadedFileDTO): Promise; restrictFile(fileId: number | string, restrictFileDTO: RestrictFileDTO): Promise; updateFileMetadata(fileId: string | number, updateFileMetadata: UpdateFileMetadataDTO, sourceLastUpdateTime?: string): Promise; updateFileTabularTags(fileId: number | string, tabularTags: string[], replace?: boolean): Promise; updateFileCategories(fileId: number | string, categories: string[], replace?: boolean): Promise; getFileVersionSummaries(fileId: number | string, limit?: number, offset?: number): Promise; isFileDeleted(fileId: number | string): Promise; }