import { VideoInclude } from '../../../../../shared/models';
import { VideoModel } from '../../video';
import { VideoTableAttributes } from './video-table-attributes';
declare type SQLRow = {
    [id: string]: string | number;
};
export declare class VideoModelBuilder {
    readonly mode: 'get' | 'list';
    readonly tables: VideoTableAttributes;
    private videosMemo;
    private videoStreamingPlaylistMemo;
    private videoFileMemo;
    private thumbnailsDone;
    private historyDone;
    private blacklistDone;
    private accountBlocklistDone;
    private serverBlocklistDone;
    private liveDone;
    private redundancyDone;
    private scheduleVideoUpdateDone;
    private trackersDone;
    private tagsDone;
    private videos;
    private readonly buildOpts;
    constructor(mode: 'get' | 'list', tables: VideoTableAttributes);
    buildVideosFromRows(options: {
        rows: SQLRow[];
        include?: VideoInclude;
        rowsWebTorrentFiles?: SQLRow[];
        rowsStreamingPlaylist?: SQLRow[];
    }): VideoModel[];
    private reinit;
    private grabSeparateWebTorrentFiles;
    private grabSeparateStreamingPlaylistFiles;
    private buildVideoAndAccount;
    private buildAccount;
    private buildActor;
    private setUserHistory;
    private addThumbnail;
    private addWebTorrentFile;
    private addStreamingPlaylist;
    private addStreamingPlaylistFile;
    private addRedundancy;
    private addTag;
    private addTracker;
    private setBlacklisted;
    private setBlockedOwner;
    private setBlockedServer;
    private setScheduleVideoUpdate;
    private setLive;
    private grab;
}
export {};
//# sourceMappingURL=video-model-builder.d.ts.map