import { ICryptoProvider } from "./base";
import { CurrentServer } from "./current-server";
import { RemoteServer } from "./remote-server";
import { Server } from "./server";
export declare class ServerManager<TKey> {
    private _currentServer;
    private _servers;
    private _provider;
    get provider(): ICryptoProvider<TKey>;
    constructor(currentServer: CurrentServer<TKey>, remotes: Iterable<RemoteServer<TKey>>, provider: ICryptoProvider<TKey>);
    get self(): CurrentServer<TKey>;
    publicKeys(): AsyncIterable<[
        string,
        {
            "application/pkix-spki": string;
            "application/jwk+json": object;
        }
    ]>;
    get(name: string): Server<TKey> | undefined;
}
