/// import { DataSource } from 'typeorm'; import { URL } from 'url'; import { AbstractObjectStorageProvider, CompleteUploadRequest, ObjectStorageObject, RefreshSignedUrlsRequest, SignedUploadUrl } from '.'; export type ObjectCreateRequest = { contentLength: number; contentType: string; fileName: string; /** * Organization that owns the file. */ organization: { id: string; }; /** * User who uploaded the file. */ uploadedBy?: { id: string; }; /** * Date used in the object key. * @default new Date() * */ date?: Date; /** * External ID for the object. */ externalId?: string; }; export type ObjectCreateFromUrlRequest = { source: URL | File; } & Omit; export declare class ObjectStorageService { private dataSource; private objectStorageProvider; objectRepo: import("typeorm").Repository; constructor(dataSource: DataSource, objectStorageProvider: AbstractObjectStorageProvider); getKeyForFile({ organization, date, fileName, }: Pick): string; createObject(file: ObjectCreateRequest): Promise<{ object: ObjectStorageObject; upload: import("./AbstractObjectStorageProvider").Upload; }>; completeUpload(objectId: string, completion: CompleteUploadRequest): Promise; refreshUploadUrls(objectId: string, request: RefreshSignedUrlsRequest): Promise; urlOrFileToFile(sourceUrlOrBuffer: URL | File): Promise; uploadFileFromUrl(file: ObjectCreateFromUrlRequest): Promise; }