import ChipCloud from '../classes/ChipCloud.js'; import ChipCloudChip from '../classes/ChipCloudChip.js'; import CommentsEntryPointHeader from '../classes/comments/CommentsEntryPointHeader.js'; import LiveChat from '../classes/LiveChat.js'; import MerchandiseShelf from '../classes/MerchandiseShelf.js'; import PlayerOverlay from '../classes/PlayerOverlay.js'; import VideoPrimaryInfo from '../classes/VideoPrimaryInfo.js'; import VideoSecondaryInfo from '../classes/VideoSecondaryInfo.js'; import LiveChatWrap from './LiveChat.js'; import type NavigationEndpoint from '../classes/NavigationEndpoint.js'; import type CardCollection from '../classes/CardCollection.js'; import type Endscreen from '../classes/Endscreen.js'; import type PlayerAnnotationsExpanded from '../classes/PlayerAnnotationsExpanded.js'; import type PlayerCaptionsTracklist from '../classes/PlayerCaptionsTracklist.js'; import type PlayerLiveStoryboardSpec from '../classes/PlayerLiveStoryboardSpec.js'; import type PlayerStoryboardSpec from '../classes/PlayerStoryboardSpec.js'; import type Actions from '../../core/Actions.js'; import type { ApiResponse } from '../../core/Actions.js'; import type { ObservedArray, YTNode } from '../helpers.js'; import { MediaInfo } from '../../core/mixins/index.js'; declare class VideoInfo extends MediaInfo { #private; basic_info: { like_count: number | undefined; is_liked: boolean | undefined; is_disliked: boolean | undefined; embed: { iframe_url: string; flash_url: string; flash_secure_url: string; width: any; height: any; } | null | undefined; channel: { id: string; name: string; url: string; } | null; is_unlisted: boolean | undefined; is_family_safe: boolean | undefined; category: string | null; has_ypc_metadata: boolean | null; start_timestamp: Date | null; view_count: number | undefined; id?: string | undefined; channel_id?: string | undefined; title?: string | undefined; duration?: number | undefined; keywords?: string[] | undefined; is_owner_viewing?: boolean | undefined; short_description?: string | undefined; thumbnail?: import("../misc.js").Thumbnail[] | undefined; allow_ratings?: boolean | undefined; author?: string | undefined; is_private?: boolean | undefined; is_live?: boolean | undefined; is_live_content?: boolean | undefined; is_upcoming?: boolean | undefined; is_crawlable?: boolean | undefined; is_post_live_dvr?: boolean | undefined; }; annotations?: ObservedArray; storyboards?: PlayerStoryboardSpec | PlayerLiveStoryboardSpec; endscreen?: Endscreen; captions?: PlayerCaptionsTracklist; cards?: CardCollection; primary_info?: VideoPrimaryInfo | null; secondary_info?: VideoSecondaryInfo | null; playlist?: { id: string; title: string; author: import("../misc.js").Text | import("../misc.js").Author; contents: YTNode[]; current_index: number; is_infinite: boolean; menu: import("../nodes.js").Menu | null; } | undefined; game_info?: { title: import("../misc.js").Text | undefined; release_year: import("../misc.js").Text | undefined; } | undefined; merchandise?: MerchandiseShelf | null; related_chip_cloud?: ChipCloud | null; watch_next_feed?: ObservedArray | null; player_overlays?: PlayerOverlay | null; comments_entry_point_header?: CommentsEntryPointHeader | null; livechat?: LiveChat | null; autoplay?: { sets: { autoplay_video: NavigationEndpoint; next_button_video?: NavigationEndpoint | undefined; }[]; modified_sets?: { autoplay_video: NavigationEndpoint; next_button_video?: NavigationEndpoint | undefined; }[] | undefined; count_down_secs?: number | undefined; } | undefined; /** * @param data - API response. * @param actions - Actions instance. * @param player - Player instance. * @param cpn - Client Playback Nonce. */ constructor(data: [ApiResponse, ApiResponse?], actions: Actions, cpn: string); /** * Applies given filter to the watch next feed. Use {@link filters} to get available filters. * @param target_filter - Filter to apply. */ selectFilter(target_filter: string | ChipCloudChip | undefined): Promise; /** * Adds video to the watch history. */ addToWatchHistory(): Promise; /** * Retrieves watch next feed continuation. */ getWatchNextContinuation(): Promise; /** * Likes the video. */ like(): Promise; /** * Dislikes the video. */ dislike(): Promise; /** * Removes like/dislike. */ removeRating(): Promise; /** * Retrieves Live Chat if available. */ getLiveChat(): LiveChatWrap; /** * Retrieves trailer info if available (typically for non-purchased movies or films). * @returns `VideoInfo` for the trailer, or `null` if none. */ getTrailerInfo(): VideoInfo | null; /** * Watch next feed filters. */ get filters(): string[]; /** * Checks if continuation is available for the watch next feed. */ get wn_has_continuation(): boolean; /** * Gets the endpoint of the autoplay video */ get autoplay_video_endpoint(): NavigationEndpoint | null; /** * Checks if trailer is available. */ get has_trailer(): boolean; /** * Get songs used in the video. */ get music_tracks(): { song: string | undefined; artist: string | undefined; album: string | undefined; license: string | undefined; videoId: string | undefined; channelId: string | undefined; }[]; } export default VideoInfo;