/// <reference types="supertest" />
/// <reference types="superagent" />
import { Response as GotResponse } from 'got';
import { ResultList, UserVideoRateType, Video, VideoCreate, VideoCreateResult, VideoDetails, VideoFileMetadata, VideoPrivacy, VideosCommonQuery } from '../../models';
import { VideoSource } from '../../models/videos/video-source';
import { AbstractCommand, OverrideCommandOptions } from '../shared';
export declare type VideoEdit = Partial<Omit<VideoCreate, 'thumbnailfile' | 'previewfile'>> & {
    fixture?: string;
    thumbnailfile?: string;
    previewfile?: string;
};
export declare class VideosCommand extends AbstractCommand {
    getCategories(options?: OverrideCommandOptions): Promise<{
        [id: number]: string;
    }>;
    getLicences(options?: OverrideCommandOptions): Promise<{
        [id: number]: string;
    }>;
    getLanguages(options?: OverrideCommandOptions): Promise<{
        [id: string]: string;
    }>;
    getPrivacies(options?: OverrideCommandOptions): Promise<{
        1: string;
        2: string;
        3: string;
        4: string;
    }>;
    getDescription(options: OverrideCommandOptions & {
        descriptionPath: string;
    }): Promise<{
        description: string;
    }>;
    getFileMetadata(options: OverrideCommandOptions & {
        url: string;
    }): Promise<VideoFileMetadata>;
    rate(options: OverrideCommandOptions & {
        id: number | string;
        rating: UserVideoRateType;
    }): import("supertest").Test;
    get(options: OverrideCommandOptions & {
        id: number | string;
    }): Promise<VideoDetails>;
    getWithToken(options: OverrideCommandOptions & {
        id: number | string;
    }): Promise<VideoDetails>;
    getSource(options: OverrideCommandOptions & {
        id: number | string;
    }): Promise<VideoSource>;
    getId(options: OverrideCommandOptions & {
        uuid: number | string;
    }): Promise<number>;
    listFiles(options: OverrideCommandOptions & {
        id: number | string;
    }): Promise<import("../../models").VideoFile[]>;
    listMyVideos(options?: OverrideCommandOptions & {
        start?: number;
        count?: number;
        sort?: string;
        search?: string;
        isLive?: boolean;
        channelId?: number;
    }): Promise<ResultList<Video>>;
    list(options?: OverrideCommandOptions & VideosCommonQuery): Promise<ResultList<Video>>;
    listWithToken(options?: OverrideCommandOptions & VideosCommonQuery): Promise<ResultList<Video>>;
    listAllForAdmin(options?: OverrideCommandOptions & VideosCommonQuery): Promise<ResultList<Video>>;
    listByAccount(options: OverrideCommandOptions & VideosCommonQuery & {
        handle: string;
    }): Promise<ResultList<Video>>;
    listByChannel(options: OverrideCommandOptions & VideosCommonQuery & {
        handle: string;
    }): Promise<ResultList<Video>>;
    find(options: OverrideCommandOptions & {
        name: string;
    }): Promise<Video>;
    update(options: OverrideCommandOptions & {
        id: number | string;
        attributes?: VideoEdit;
    }): import("supertest").Test;
    remove(options: OverrideCommandOptions & {
        id: number | string;
    }): Promise<unknown>;
    removeAll(): Promise<void>;
    upload(options?: OverrideCommandOptions & {
        attributes?: VideoEdit;
        mode?: 'legacy' | 'resumable';
        waitTorrentGeneration?: boolean;
    }): Promise<VideoCreateResult>;
    buildLegacyUpload(options: OverrideCommandOptions & {
        attributes: VideoEdit;
    }): Promise<VideoCreateResult>;
    buildResumeUpload(options: OverrideCommandOptions & {
        attributes: VideoEdit;
    }): Promise<VideoCreateResult>;
    prepareResumableUpload(options: OverrideCommandOptions & {
        attributes: VideoEdit;
        size: number;
        mimetype: string;
        originalName?: string;
        lastModified?: number;
    }): Promise<import("superagent").Response>;
    sendResumableChunks(options: OverrideCommandOptions & {
        pathUploadId: string;
        videoFilePath: string;
        size: number;
        contentLength?: number;
        contentRangeBuilder?: (start: number, chunk: any) => string;
        digestBuilder?: (chunk: any) => string;
    }): Promise<GotResponse<{
        video: VideoCreateResult;
    }>>;
    endResumableUpload(options: OverrideCommandOptions & {
        pathUploadId: string;
    }): import("supertest").Test;
    quickUpload(options: OverrideCommandOptions & {
        name: string;
        nsfw?: boolean;
        privacy?: VideoPrivacy;
        fixture?: string;
    }): Promise<VideoCreateResult>;
    randomUpload(options?: OverrideCommandOptions & {
        wait?: boolean;
        additionalParams?: VideoEdit & {
            prefixName?: string;
        };
    }): Promise<{
        name: string;
        id: number;
        uuid: string;
        shortUUID: string;
    }>;
    removeHLSPlaylist(options: OverrideCommandOptions & {
        videoId: number | string;
    }): import("supertest").Test;
    removeHLSFile(options: OverrideCommandOptions & {
        videoId: number | string;
        fileId: number;
    }): import("supertest").Test;
    removeAllWebTorrentFiles(options: OverrideCommandOptions & {
        videoId: number | string;
    }): import("supertest").Test;
    removeWebTorrentFile(options: OverrideCommandOptions & {
        videoId: number | string;
        fileId: number;
    }): import("supertest").Test;
    runTranscoding(options: OverrideCommandOptions & {
        videoId: number | string;
        transcodingType: 'hls' | 'webtorrent';
    }): import("supertest").Test;
    private buildListQuery;
    private buildUploadFields;
    private buildUploadAttaches;
}
//# sourceMappingURL=videos-command.d.ts.map