import { IJackettSettings } from "../model/jackett-settings.model";
import { TorznabIndexerModel } from "../model/torznab-indexer.model";
import { RssResultModel } from "../model/rss-result.model";
export declare class JackettService {
    private settings;
    private axios;
    constructor(settings: IJackettSettings);
    /**
     * Retrieves full supported Torznab indexers list
     *
     * @return {Promise<Array<TorznabIndexerModel>>} Promise of indexers fetched from Jackett
     */
    getTorznabIndexers(): Promise<Array<TorznabIndexerModel>>;
    /**
     * Retrieves a filtered list of configured indexers on Jackett
     *
     * @return {Promise<Array<TorznabIndexerModel>>} Promise of configured indexers fetched from Jackett
     */
    getConfiguredIndexers(): Promise<Array<TorznabIndexerModel>>;
    /**
     * Downloads a torrent file of given RssResultModel & saves it on given downloadFolderPath.
     *
     * @param rssResult The model of the desired torrent to download
     * @param downloadFolderPath base dir for the file to be saved in
     * @return promise of the download process
     */
    downloadTorrent(rssResult: RssResultModel, downloadFolderPath: string): Promise<void>;
    /**
     * Fetch the latest Rss feed from a given indexer.
     *
     * @param indexerId Id of the indexer to fetch Rss feed from
     * @return Promise<Array<RssResultModel>> Rss results from the feed of the indexer
     */
    getIndexerRss(indexerId: string): Promise<Array<RssResultModel>>;
    /**
     * Search a query and filter results by given indexers ids.
     *
     * @param query The search query to submit
     * @param indexersId Array of index id's to filter the results with
     * @return {Promise<Array<RssResultModel>>} Promise of filtered rss results
     */
    searchIndexers(query: string, indexersId: string[]): Promise<Array<RssResultModel>>;
    /**
     * Search a query in all indexers
     *
     * @param query The search query to submit
     * @return {Promise<Array<RssResultModel>>} Promise of rss results from all configured indexers
     */
    searchAll(query: string): Promise<Array<RssResultModel>>;
    /**
     * Validate connection to the Jackett server.
     * Sends a request to fetch data to see how the server behaves & tries to parse it to validate the content.
     *
     * @return {Promise<boolean>} State of the server connectivity
     */
    isValidServer(): Promise<boolean>;
}
