import { FileListQueryType } from "../types/file-types"; import { FolderListQueryType } from "../types/folder-types"; export interface IFileDB { getPublicFile(fileID: string): Promise; getPublicInfo(fileID: string, tempToken: string): Promise; getFileInfo(fileID: string, userID: string): Promise; getQuickList(userID: string, limit: number): Promise; getList( queryData: FileListQueryType, sortBy: string, limit: number ): Promise; getFileSearchList( userID: string, searchQuery: RegExp | string, trashMode: boolean, mediaMode: boolean ): Promise; getFileListByIncludedParent( userID: string, parentListString: string ): Promise; getFileListByOwner(userID: string): Promise; getFileListByParent(userID: string, parent: string): Promise; updateFileUploadedFile( fileID: string, userID: string, parent: string, parentList: string ): Promise; updateFolderUploadedFile( fileID: string, userID: string, parent: string, parentList: string ): Promise; setThumbnail(fileID: string, thumbnailID: string): Promise; removeOneTimePublicLink(fileID: string): Promise; removeLink(fileID: string, userID: string): Promise; makePublic(fileID: string, userID: string, token: string): Promise; makeOneTimePublic( fileID: string, userID: string, token: string ): Promise; trashFile( fileID: string, parent: string, parentList: string, userID: string ): Promise; restoreFile(fileID: string, userID: string): Promise; removeTempToken(user: any, tempToken: string): Promise; trashFilesByParent(parentList: string, userID: string): Promise; restoreFilesByParent(parentList: string, userID: string): Promise; renameFile(fileID: string, userID: string, title: string): Promise; moveFile( fileID: string, userID: string, parent: string, parentList: string ): Promise; moveMultipleFiles( userID: string, currentParent: string, newParent: string, newParentList: string ): Promise; deleteFile(fileID: string, userID: string): Promise; createFile(data: { filename: string; uploadDate: string; length: number; metadata: any }): Promise; setVideoThumbnail( fileID: string, userID: string, thumbnailID: string ): Promise; } export interface IFolderDB { getFolderSearchList( userID: string, searchQuery: RegExp | string, trashMode: boolean ): Promise; getFolderInfo(folderID: string, userID: string): Promise; getFolderList( queryData: FolderListQueryType, sortBy: string ): Promise; getMoveFolderList( userID: string, parent?: string, search?: string, folderIDs?: string[] ): Promise; getFolderListByIncludedParent( userID: string, parent: string ): Promise; findAllFoldersByParent(parentID: string, userID: string): Promise; moveFolder( folderID: string, userID: string, parent: string, parentList: string[] ): Promise; renameFolder(folderID: string, userID: string, title: string): Promise; trashFoldersByParent(parentList: string[], userID: string): Promise; restoreFolder(folderID: string, userID: string): Promise; restoreFoldersByParent(parentList: string[], userID: string): Promise; trashFolder(folderID: string, userID: string): Promise; createFolder(folderData: { name: string; parent: string; parentList: string[]; owner: string; }): Promise; deleteFolder(folderID: string, userID: string): Promise; deleteFoldersByParentList( parentList: string[], userID: string ): Promise; deleteFoldersByOwner(userID: string): Promise; } export interface IUserDB { getUserInfo(userID: string): Promise; findByEmail(email: string): Promise; findByCreds(email: string, password: string): Promise; createUser(email: string, password: string): Promise; removeOldTokens( userID: string, uuid: string | undefined, minusTime: number, isTemp: boolean ): Promise; removeTempTokenByValue(userID: string, token: string): Promise; } export interface IThumbnailDB { getThumbnailInfo(userID: string, thumbnailID: string): Promise; removeThumbnail(userID: string, thumbnailID: any): Promise; createThumbnail(data: { name: string; owner: string; IV: Buffer; path?: string; s3ID?: string; }): Promise; }