export interface ProviderTorrent {
    id: string;
    name: string;
    magnet?: string;
    seeds: number;
    peers: number;
    size: string;
    time?: number;
    downloads?: number;
    category?: {
        id: string;
        name: string;
    };
    link?: string;
    isVip?: boolean;
    imdb?: string;
    numFiles?: number;
    comments?: number;
}
export interface ProviderCategory {
    name: string;
    id: string;
    subcategories: {
        name: string;
        id: string;
    }[];
}
export interface ProviderMeta {
    categories: ProviderCategory[];
}
export interface ProviderSearchOptions {
    category?: string;
    limit?: number;
}
export declare abstract class Provider {
    static providerName: string;
    abstract getMeta(): Promise<ProviderMeta>;
    search(_query: string, _options?: ProviderSearchOptions): Promise<ProviderTorrent[]>;
    getMagnet(_id: string): Promise<string | undefined>;
}
