import { EMSClient, BaseEmsServiceConfig } from './ems_client';
export interface IEmsService {
    getAttributions(): {
        url: string;
        label: string;
    }[];
    getMarkdownAttribution(): string;
    getDisplayName(): string;
    getId(): string;
    hasId(id: string): boolean;
    getApiUrl(): string;
}
export declare abstract class AbstractEmsService implements IEmsService {
    protected readonly _emsClient: EMSClient;
    protected readonly _config: BaseEmsServiceConfig;
    protected readonly _proxyPath: string;
    constructor(config: BaseEmsServiceConfig, emsClient: EMSClient, proxyPath: string);
    getAttributions(): {
        url: string;
        label: string;
    }[];
    getMarkdownAttribution(): string;
    /**
     * Checks if url is absolute. If not, prepend the basePath.
     */
    protected _getAbsoluteUrl: (url: string) => string;
    abstract getDisplayName(): string;
    abstract getId(): string;
    abstract hasId(id: string): boolean;
    abstract getApiUrl(): string;
}
