/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */
import type { Jellyfin } from '../jellyfin';
import type { RecommendedServerInfo } from '../models/recommended-server-info';
import { RecommendedServerInfoScore } from '../models/recommended-server-info';
/** Class used for discovering recommended servers. */
export declare class DiscoveryService {
    private jellyfin;
    private recommendedServerDiscovery;
    constructor(jellyfin: Jellyfin);
    /**
     * Finds the best server from a list of recommended servers by score.
     * @param servers A list of recommended servers.
     * @returns The best scoring recommended server.
     */
    findBestServer(servers: Array<RecommendedServerInfo>): RecommendedServerInfo | undefined;
    /**
     * Gets a list of address candidates url strings
     * from a provided url address string.
     * @param input A server url address string.
     * @returns A list of potential server addresses.
     */
    getAddressCandidates(input: string): Array<string>;
    /**
     * Gets a list of recommended server information from a provided
     * list of possible server addresses.
     * @param servers A list of possible server addresses.
     * @param minimumScore The minimum server score to include in the results.
     * @returns A list of RecommendedServerInfo from the possible server addresses.
     */
    getRecommendedServers(servers: Array<string>, minimumScore?: RecommendedServerInfoScore): Promise<Array<RecommendedServerInfo>>;
    /**
     * Gets a list of recommended server information from the address
     * candidates of a potential server address.
     * @param input A potential server address.
     * @param minimumScore The minimum server score to include in the results.
     * @returns A list of RecommendedServerInfo from the address candidates.
     */
    getRecommendedServerCandidates(input: string, minimumScore?: RecommendedServerInfoScore): Promise<Array<RecommendedServerInfo>>;
}
