import type { ApiClient } from '../../../ApiClient'; import type { Channel } from '../Channel/Channel'; /** @private */ export interface VideoChannelData { _id: string; name: string; display_name: string; } /** @private */ export interface VideoMutedSegment { duration: number; offset: number; } /** @private */ export declare type VideoThumbSize = 'large' | 'medium' | 'small' | 'template'; /** @private */ export interface VideoThumbnail { type: string; url: string; } /** @private */ export declare type VideoViewability = 'public' | 'private'; /** @private */ export interface VideoData { _id: string; broadcast_id: string; broadcast_type: string; channel: VideoChannelData; created_at: string; description: string; description_html: string; fps: Record; game: string; language: string; length: number; muted_segments: VideoMutedSegment[]; preview: Record; published_at: string; resolutions: Record; status: string; tag_list: string; thumbnails: Record; title: string; url: string; viewable: VideoViewability; viewable_at: string | null; views: number; } /** * A Twitch video. */ export declare class Video { /** @private */ private readonly _data; private readonly _client; /** @private */ constructor(data: VideoData, client: ApiClient); /** * The ID of the video. */ get id(): string; /** * The ID of the channel the video was uploaded to. */ get channelId(): string; /** * The name of the channel the video was uploaded to. */ get channelName(): string; /** * The display name of the channel the video was uploaded to. */ get channelDisplayName(): string; /** * Retrieves more information about the channel the video was uploaded to. */ getChannel(): Promise; /** * The date when the video was created. */ get creationDate(): Date; /** * The description of the video. */ get description(): string; /** * The description of the video in HTML. */ get htmlDescription(): string; /** * The resolutions the video is available in. */ get resolutions(): Record; /** * Gets the FPS (frames per second) of the video for a given resolution. * * @param resolution The resolution to get FPS for. This is the *key* of the resolutions object. */ getFps(resolution: string): number | undefined; /** * The name of the game shown in the video. */ get gameName(): string; /** * The language of the video. */ get language(): string; /** * The length of the video, in seconds. */ get length(): number; /** * The muted segments of the video. */ get mutedSegments(): VideoMutedSegment[]; /** * Gets the URL for a given size of the video. * * @param size The size of the preview. */ getPreview(size: VideoThumbSize): string; /** * The date when the video was published. */ get publishDate(): Date; /** * The status of the video. */ get status(): string; /** * A list of tags of the video. */ get tags(): string[]; /** * Gets a list of thumbnails for a given size of the video. * * @param size */ getThumbnails(size: VideoThumbSize): VideoThumbnail[]; /** * The title of the video. */ get title(): string; /** * The URL of the video. */ get url(): string; /** * Whether the video is public. */ get isPublic(): boolean; /** * The time when the video will be viewable publicly. */ get viewabilityDate(): Date | null; /** * The number of views of the video. */ get views(): number; }