export interface SearchItem { videoId: string title: string youtubeUrl: string duration: string views: number author: string thumbnail: string } export interface SearchResult { status: 'ok' | 'error' query: string platform: 'YouTube' items: SearchItem[] } export interface Thumbnail { preview: string resolution: string } export interface DownloadResult { title: string | null author: string | null duration: string | null thumbnail: Thumbnail[] quality: string | null format: 'mp3' | 'mp4' mp3DownloadLink: string | null mp4DownloadLink: string | null } export interface PlayResult { title: string | null author: string | null duration: string | null thumbnail: string | null videoUrl: string audioUrl: string quality: string filename: string | null } export declare class ApiClient { constructor(apiKey: string, baseUrl: string) get(path: string, params?: Record): Promise post(path: string, payload?: Record): Promise } export declare class Search { constructor(client: ApiClient) videos(query: string): Promise } export declare class Download { constructor(client: ApiClient) video(url: string, format?: 'mp3' | 'mp4', quality?: number): Promise mp3(url: string, quality?: 92 | 128 | 256 | 320): Promise mp4(url: string, quality?: 144 | 360 | 480 | 720 | 1080): Promise } export declare class Play { constructor(client: ApiClient) music(title: string): Promise } declare class Youtube { search: Search download: Download play: Play constructor(apiKey: string, baseUrl: string) } export default Youtube