using System; using YoutubeExplode; using YoutubeExplode.Videos; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using System.Net.Http; using System.IO; using YoutubeExplode.Playlists; using YoutubeExplode.Channels; using Newtonsoft.Json; namespace Tesses.YouTubeDownloader { public interface ITYTDBase : IPersonalPlaylistGet { IAsyncEnumerable GetPersonalPlaylistsAsync(); Task<(String Path,bool Delete)> GetRealUrlOrPathAsync(string path); Task GetLengthAsync(string path); bool FileExists(string path); IAsyncEnumerable GetVideoIdsAsync(); Task GetVideoInfoAsync(VideoId id); IAsyncEnumerable GetVideosAsync(); IAsyncEnumerable GetLegacyVideosAsync(); Task GetLegacyVideoInfoAsync(VideoId id); IAsyncEnumerable GetPlaylistsAsync(); Task ReadAllBytesAsync(string path,CancellationToken token=default(CancellationToken)); IAsyncEnumerable GetPlaylistIdsAsync(); IAsyncEnumerable GetChannelIdsAsync(); IAsyncEnumerable GetYouTubeExplodeVideoIdsAsync(); Task GetChannelInfoAsync(ChannelId id); IAsyncEnumerable GetChannelsAsync(); bool PlaylistInfoExists(PlaylistId id); bool VideoInfoExists(VideoId id); bool ChannelInfoExists(ChannelId id); Task GetPlaylistInfoAsync(PlaylistId id); Task ReadAllTextAsync(string file); bool DirectoryExists(string path); IEnumerable EnumerateFiles(string path); IEnumerable EnumerateDirectories(string path); Task OpenReadAsyncWithLength(string path); Task OpenReadAsync(string path); Task FileExistsAsync(string path); Task DirectoryExistsAsync(string path); IAsyncEnumerable EnumerateFilesAsync(string path); IAsyncEnumerable EnumerateDirectoriesAsync(string path); } }