/// export type MediaUploadInput = { fileName: string; content: Buffer; contentType?: string; folderId?: string; }; export type MediaReference = { ref: string; }; export type MediaItemReference = { id: string; ref: string; folderId?: string; }; export type IMediaProvider = { mediaUpload(input: MediaUploadInput): Promise; mediaDelete(input: MediaReference): Promise; mediaDownload(input: MediaReference): Promise; getFileName(input: MediaReference): string; getProviderId(): string; }; export type MediaReferenceRecord = { id: string; ref: string; folderId?: string; createdOn: Date; updatedOn: Date; }; export type MediaReferenceCreateInput = { media: MediaReference; fileName: string; contentType?: string; folderId?: string; providerId: string; }; export type IMediaReferenceRepository = { getReference(file: MediaReference): Promise; createReference(input: MediaReferenceCreateInput): Promise; updateReferenceFolder(file: MediaReference, folderId: string | undefined): Promise; deleteReference(file: MediaReference): Promise; getFolderReferences(folderId?: string): Promise; }; export type MediaFolderRecord = { id: string; name: string; createdOn: Date; updatedOn: Date; }; export type IMediaFolderRepository = { folderCreate(input: { name: string; parentId?: string; organizationId?: string; }): Promise; folderRename(id: string, name: string): Promise; folderMove(id: string, parentId?: string): Promise; folderDelete(id: string): Promise; foldersList(parentId?: string): Promise; folderFind(name: string, parentId?: string): Promise; }; export type MediaFolderCreateInput = { folderName: string; parentId?: string; organizationId?: string; }; export type MediaFolderReference = { id: string; name: string; }; export type MediaFolderRenameInput = { id: string; folderName?: string; }; export type MediaFolderMoveInput = { id: string; folderId?: string; }; export type MediaInfo = { ref: string; fileName: string; }; export type MediaFolderEnsureInput = { path: string[]; organizationId?: string; }; export type IMediaLibraryManager = { mediaUpload(input: MediaUploadInput): Promise; mediaDelete(input: MediaReference): Promise; mediaDownload(input: MediaReference): Promise; folderEnsure(input: MediaFolderEnsureInput): Promise; folderCreate(input: MediaFolderCreateInput): Promise; folderDelete(input: MediaFolderReference): Promise; folderMove(input: MediaFolderMoveInput): Promise; folderRename(input: MediaFolderRenameInput): Promise; foldersList(parent?: MediaFolderReference): Promise; getFolderMedia(input: MediaFolderReference): Promise; };