///
import { Stream } from 'stream';
import { Channel } from './channel';
export interface SimpleItem {
id?: number;
label?: string;
}
export interface Video {
id: number;
uuid: string;
name: string;
createdAt: string;
publishedAt: string;
updatedAt: string;
category: SimpleItem;
licence: SimpleItem;
language: SimpleItem;
privacy: string;
description?: string;
duration: number;
isLocal: boolean;
thumbnailPath: string;
previewPath: string;
embedPath: string;
views: number;
likes: number;
dislikes: number;
nsfw: boolean;
account: Partial;
channel: Partial;
files?: VideoFile[];
}
export interface VideoDetails extends Video {
blacklisted: boolean;
blacklistedReason?: string;
support?: string;
descriptionPath?: string;
tags: string[];
commentsEnabled: boolean;
waitTranscoding: boolean;
state: SimpleItem;
}
export interface BasicListParams {
count?: number;
start?: number;
sort?: string;
}
export interface AbuseListParams extends BasicListParams {
sort?: '-id' | '-createdAt' | '-state';
}
export interface BlacklistParams extends BasicListParams {
sort?: '-id' | '-name' | '-duration' | '-views' | '-likes' | '-dislikes' | '-uuid' | '-createdAt';
}
export interface SearchListParams extends BasicListParams {
search: string;
sort?: '-name' | '-duration' | '-createdAt' | '-publishedAt' | '-views' | '-likes' | '-match';
}
export interface ListVideoParamsFull {
categoryOneOf?: string | string[];
count?: number;
filter?: 'local' | 'all-local';
languageOneOf?: string | string[];
licenceOneOf?: number | number[];
nsfw?: 'true' | 'false';
sort?: '-name' | '-duration' | '-createdAt' | '-publishedAt' | '-views' | '-likes' | '-trending';
start?: number;
tagsAllOf?: string | string[];
tagsOneOf?: string | string[];
}
export interface UpdateVideoPayload {
category?: string;
commentsEnabled?: string;
description?: string;
language?: string;
licence?: string;
name?: string;
nsfw?: string;
previewFile?: string;
scheduleUpdate?: {
updateAt: string;
privacy?: 'Public' | 'Unlisted';
};
support?: string;
tags?: string;
thumbnailfile?: string;
waitTranscoding?: string;
}
interface VideoFile {
resolution: SimpleItem;
magnetUri: string;
size: number;
fps: number;
torrentUrl: string;
torrentDownloadUrl: string;
fileUrl: string;
fileDownloadUrl: string;
}
export interface UploadVideoPayload extends UpdateVideoPayload {
channelId: number;
name: string;
videofile: Stream | string | Buffer | ArrayBuffer;
}
export interface UploadVideoResponse {
video: {
id: number;
uuid: string;
};
}
export interface Abuse {
id: number;
reason: string;
reporterAccount: Account;
video: {
id: number;
name: string;
uuid: string;
url: string;
};
createdAt: string;
}
export interface BlacklistedVideo {
id: number;
videoId: number;
createdAt: string;
updatedAt: string;
name: string;
uuid: string;
description: string;
duration: number;
views: number;
likes: number;
dislikes: number;
nsfw: boolean;
}
export {};
//# sourceMappingURL=video.d.ts.map