import type { ApiClient } from '../../../ApiClient'; import type { HelixUser } from '../User/HelixUser'; export declare type HelixVideoViewableStatus = 'public' | 'private'; export declare type HelixVideoType = 'upload' | 'archive' | 'highlight'; /** * Data about a muted segment in a video. */ export interface HelixVideoMutedSegmentData { /** * The start of the muted segment, in seconds from the start. */ offset: number; /** * The duration of the muted segment, in seconds. */ duration: number; } /** @private */ export interface HelixVideoData { id: string; user_id: string; user_login: string; user_name: string; title: string; description: string; created_at: string; published_at: string; url: string; thumbnail_url: string; viewable: HelixVideoViewableStatus; view_count: number; language: string; type: HelixVideoType; duration: string; stream_id: string | null; muted_segments: HelixVideoMutedSegmentData[]; } /** * A video on Twitch. */ export declare class HelixVideo { private readonly _data; private readonly _client; /** @private */ constructor(data: HelixVideoData, client: ApiClient); /** * The ID of the video. */ get id(): string; /** * The ID of the user who created the video. */ get userId(): string; /** * The name of the user who created the video. */ get userName(): string; /** * The display name of the user who created the video. */ get userDisplayName(): string; /** * Retrieves information about the user who created the video. */ getUser(): Promise; /** * The title of the video. */ get title(): string; /** * The description of the video. */ get description(): string; /** * The date when the video was created. */ get creationDate(): Date; /** * The date when the video was published. */ get publishDate(): Date; /** * The URL of the video. */ get url(): string; /** * The URL of the thumbnail of the video. */ get thumbnailUrl(): string; /** * Whether the video is public or not. */ get isPublic(): boolean; /** * The number of views of the video. */ get views(): number; /** * The language of the video. */ get language(): string; /** * The type of the video. */ get type(): HelixVideoType; /** * The duration of the video, as formatted by Twitch. */ get duration(): string; /** * The duration of the video, in seconds. */ get durationInSeconds(): number; /** * The ID of the stream this video belongs to. * * Returns null if the video is not an archived stream. */ get streamId(): string | null; /** * The raw data of muted segments of the video. */ get mutedSegmentData(): HelixVideoMutedSegmentData[]; /** * Checks whether the video is muted at a given offset or range. * * @param offset The start of your range, in seconds from the start of the video, * or if no duration is given, the exact offset that is checked. * @param duration The duration of your range, in seconds. * @param partial Whether the range check is only partial. * * By default, this function returns true only if the passed range is entirely contained in a muted segment. */ isMutedAt(offset: number, duration?: number, partial?: boolean): boolean; }