/**
 * Type declarations for ab-downloader package
 * @see https://www.npmjs.com/package/ab-downloader
 */

declare module "ab-downloader" {
  export interface DownloadResult {
    url: string;
    title?: string;
    thumbnail?: string;
    duration?: number;
    quality?: string;
    developer?: string;
    contactme?: string;
  }

  // All-in-one downloader (auto-detects platform)
  export function aio(url: string): Promise<DownloadResult | DownloadResult[]>;
  
  // Platform-specific downloaders
  // Note: igdl returns an array
  export function igdl(url: string): Promise<DownloadResult[]>;  // Instagram
  export function youtube(url: string): Promise<DownloadResult | DownloadResult[]>;  // YouTube
  export function ttdl(url: string): Promise<DownloadResult | DownloadResult[]>;  // TikTok
  export function twitter(url: string): Promise<DownloadResult | DownloadResult[]>;  // Twitter/X
  export function fbdown(url: string): Promise<DownloadResult | DownloadResult[]>;  // Facebook
  
  // Other downloaders
  export function mediafire(url: string): Promise<DownloadResult | DownloadResult[]>;
  export function capcut(url: string): Promise<DownloadResult | DownloadResult[]>;
  export function gdrive(url: string): Promise<DownloadResult | DownloadResult[]>;
  export function pinterest(url: string): Promise<DownloadResult | DownloadResult[]>;
}