import BaseEntity from "./base.entity"; import User from "./user.entity"; export interface ResizeConfig { rotate: number; scaleX: number; scaleY: number; x: number; y: number; width: number; height: number; } export default class Media extends BaseEntity { hiddenFields: string[]; id: number; originalName: string; slug: string; private is_directory; isDirectory: boolean; mimetype: string; size: number; fileName: string; path: string; parent: Media; _children: Media[]; owner: User; width: number; height: number; readonly children: Promise; remove(): Promise; /** * Create a cropped image starting of the current. * The image will be placed in the same directory as the original. * @param config: The configuration object containing the crop parameters * @return a promise with the new @type Media */ resizeToNewEntity(config: ResizeConfig): Promise; static persist(uploadMedia: Express.Multer.File, user: User, directory?: Media): Promise; static mkdir(name: string, user?: User, directory?: Media | null): Promise; static getFolder(path: string): Promise; static findBySlug(slug: string): Promise; static findBySlugOrId(key: string): Promise; static findOneWithParent(id: number): Promise; }