import GirafeSingleton from '../../base/GirafeSingleton';
import ServerOgcApi from '../../models/serverogcapi';
export default abstract class OgcApiManager<OgcApiClient, OgcApiClientOptions> extends GirafeSingleton {
    protected readonly _clientClasses: Map<string, new (server: ServerOgcApi, options: OgcApiClientOptions) => OgcApiClient>;
    protected readonly _clients: Map<string, OgcApiClient>;
    abstract getClientId(server: ServerOgcApi): string;
    createClient(clientClass: new (os: ServerOgcApi, opt: OgcApiClientOptions) => OgcApiClient, server: ServerOgcApi): OgcApiClient;
    registerClientClass(type: string, clientClass: new (server: ServerOgcApi, opt: OgcApiClientOptions) => OgcApiClient): void;
    getClient(server: ServerOgcApi): OgcApiClient;
}
