import { Transaction } from 'sequelize/types';
import { LoggerTagsFn } from '../../../../helpers/logger';
import { MThumbnail, MVideoFullLight, MVideoThumbnail } from '../../../../types/models';
import { VideoObject } from '../../../../../shared/models';
export declare abstract class APVideoAbstractBuilder {
    protected abstract videoObject: VideoObject;
    protected abstract lTags: LoggerTagsFn;
    protected getOrCreateVideoChannelFromVideoObject(): Promise<import("../../../../types/models").MActorFullActor>;
    protected tryToGenerateThumbnail(video: MVideoThumbnail): Promise<MThumbnail>;
    protected setPreview(video: MVideoFullLight, t?: Transaction): Promise<void>;
    protected setTags(video: MVideoFullLight, t: Transaction): Promise<void>;
    protected setTrackers(video: MVideoFullLight, t: Transaction): Promise<void>;
    protected insertOrReplaceCaptions(video: MVideoFullLight, t: Transaction): Promise<void>;
    protected insertOrReplaceLive(video: MVideoFullLight, transaction: Transaction): Promise<void>;
    protected setWebTorrentFiles(video: MVideoFullLight, t: Transaction): Promise<void>;
    protected setStreamingPlaylists(video: MVideoFullLight, t: Transaction): Promise<void>;
    private insertOrReplaceStreamingPlaylist;
    private getStreamingPlaylistFiles;
    private setStreamingPlaylistFiles;
}
//# sourceMappingURL=abstract-builder.d.ts.map