import { Model } from 'sequelize-typescript';
import { MThumbnail, MThumbnailVideo, MVideo } from '../../types/models';
import { AttributesOnly } from '../../../shared/typescript-utils';
import { ThumbnailType } from '../../../shared/models/videos/thumbnail.type';
import { VideoModel } from './video';
import { VideoPlaylistModel } from './video-playlist';
export declare class ThumbnailModel extends Model<Partial<AttributesOnly<ThumbnailModel>>> {
    filename: string;
    height: number;
    width: number;
    type: ThumbnailType;
    fileUrl: string;
    automaticallyGenerated: boolean;
    videoId: number;
    Video: VideoModel;
    videoPlaylistId: number;
    VideoPlaylist: VideoPlaylistModel;
    createdAt: Date;
    updatedAt: Date;
    previousThumbnailFilename: string;
    private static readonly types;
    static removeOldFile(instance: ThumbnailModel, options: any): any;
    static removeFiles(instance: ThumbnailModel): void;
    static loadByFilename(filename: string, thumbnailType: ThumbnailType): Promise<MThumbnail>;
    static loadWithVideoByFilename(filename: string, thumbnailType: ThumbnailType): Promise<MThumbnailVideo>;
    static buildPath(type: ThumbnailType, filename: string): string;
    getFileUrl(video: MVideo): string;
    getPath(): string;
    getPreviousPath(): string;
    removeThumbnail(): Promise<void>;
    removePreviousFilenameIfNeeded(): void;
}
//# sourceMappingURL=thumbnail.d.ts.map