import { HorizontalListContinuation } from '../../parser/index.js';
import type { Session } from '../index.js';
import type { InnerTubeClient } from '../../types/index.js';
import NavigationEndpoint from '../../parser/classes/NavigationEndpoint.js';
import { HomeFeed, VideoInfo, MyYoutubeFeed } from '../../parser/yttv/index.js';
import type { YTNode } from '../../parser/helpers.js';
import Playlist from '../../parser/yttv/Playlist.js';
import Library from '../../parser/yttv/Library.js';
import SubscriptionsFeed from '../../parser/yttv/SubscriptionsFeed.js';
import PlaylistsFeed from '../../parser/yttv/PlaylistsFeed.js';
export default class TV {
    #private;
    constructor(session: Session);
    getInfo(target: string | NavigationEndpoint, client?: InnerTubeClient): Promise<VideoInfo>;
    getHomeFeed(): Promise<HomeFeed>;
    getLibrary(): Promise<Library>;
    getSubscriptionsFeed(): Promise<SubscriptionsFeed>;
    /**
     * Retrieves the user's playlists.
     */
    getPlaylists(): Promise<PlaylistsFeed>;
    /**
     * Retrieves the user's My YouTube page.
     */
    getMyYoutubeFeed(): Promise<MyYoutubeFeed>;
    getPlaylist(id: string): Promise<Playlist>;
    fetchContinuationData(item: YTNode, client?: InnerTubeClient): Promise<import("../../parser/continuations.js").ItemSectionContinuation | import("../../parser/continuations.js").SectionListContinuation | HorizontalListContinuation | import("../../parser/continuations.js").LiveChatContinuation | import("../../parser/continuations.js").MusicPlaylistShelfContinuation | import("../../parser/continuations.js").MusicShelfContinuation | import("../../parser/continuations.js").GridContinuation | import("../../parser/continuations.js").PlaylistPanelContinuation | import("../../parser/continuations.js").PlaylistVideoListContinuation | import("../../parser/continuations.js").TvSurfaceContentContinuation | import("../../parser/continuations.js").ContinuationCommand | undefined>;
    /**
     * Adds videos to a given playlist.
     * @param playlist_id - The playlist ID.
     * @param video_ids - An array of video IDs to add to the playlist.
     * @param client - Innertube Client to use for request
     */
    addVideos(playlist_id: string, video_ids: string[], client?: InnerTubeClient): Promise<{
        playlist_id: string;
        action_result: any;
    }>;
    /**
     * Adds a given playlist to the library of a user.
     * @param playlist_id - The playlist ID.
     */
    addToLibrary(playlist_id: string): Promise<import("../Actions.js").ApiResponse>;
    /**
     * Remove a given playlist to the library of a user.
     * @param playlist_id - The playlist ID.
     */
    removeFromLibrary(playlist_id: string): Promise<import("../Actions.js").ApiResponse>;
}
