import { MUserAccountId } from '../../../../types/models';
import { AbstractRunQuery } from './abstract-run-query';
import { VideoTableAttributes } from './video-table-attributes';
export declare class AbstractVideoQueryBuilder extends AbstractRunQuery {
    protected readonly mode: 'list' | 'get';
    protected attributes: {
        [key: string]: string;
    };
    protected joins: string;
    protected where: string;
    protected tables: VideoTableAttributes;
    constructor(mode: 'list' | 'get');
    protected buildSelect(): string;
    protected includeChannels(): void;
    protected includeAccounts(): void;
    protected includeOwnerUser(): void;
    protected includeThumbnails(): void;
    protected includeWebtorrentFiles(): void;
    protected includeStreamingPlaylistFiles(): void;
    protected includeUserHistory(userId: number): void;
    protected includePlaylist(playlistId: number): void;
    protected includeTags(): void;
    protected includeBlacklisted(): void;
    protected includeBlockedOwnerAndServer(serverAccountId: number, user?: MUserAccountId): void;
    protected includeScheduleUpdate(): void;
    protected includeLive(): void;
    protected includeTrackers(): void;
    protected includeWebTorrentRedundancies(): void;
    protected includeStreamingPlaylistRedundancies(): void;
    protected buildActorInclude(prefixKey: string): {
        [id: string]: string;
    };
    protected buildAvatarInclude(prefixKey: string): {
        [id: string]: string;
    };
    protected buildServerInclude(prefixKey: string): {
        [id: string]: string;
    };
    protected buildAttributesObject(prefixKey: string, attributeKeys: string[]): {
        [id: string]: string;
    };
    protected whereId(options: {
        id?: string | number;
        url?: string;
    }): void;
    protected addJoin(join: string): void;
}
//# sourceMappingURL=abstract-video-query-builder.d.ts.map