import { default as EventEmitter } from 'events';
import { LanguageInfo } from './language';
import { FetchFunction } from '@maptiler/client';
import { Unit } from './types';
export declare const MAPTILER_SESSION_ID: string;
/**
 * Configuration class for the SDK
 */
declare class SdkConfig extends EventEmitter {
    /**
     * The primary language. By default, the language of the web browser is used.
     */
    primaryLanguage: LanguageInfo;
    /**
     * The secondary language, to overwrite the default language defined in the map style.
     * This settings is highly dependant on the style compatibility and may not work in most cases.
     */
    secondaryLanguage?: LanguageInfo;
    /**
     * Setting on whether of not the SDK runs with a session logic.
     * A "session" is started at the initialization of the SDK and finished when the browser
     * page is being refreshed.
     * When `session` is enabled (default: true), the extra URL param `mtsid` is added to queries
     * on the MapTiler Cloud API. This allows MapTiler to enable "session based billing".
     */
    session: boolean;
    /**
     * Enables client-side caching of requests for tiles and fonts.
     * The cached requests persist multiple browser sessions and will be reused when possible.
     * Works only for requests to the MapTiler Cloud API when sessions are enabled.
     */
    caching: boolean;
    /**
     * Telemetry is enabled by default but can be opted-out by setting this value to `false`.
     * The telemetry is very valuable to the team at MapTiler because it shares information
     * about where to add the extra effort. It also helps spotting some incompatibility issues
     * that may arise between the SDK and a specific version of a module.
     *
     * It consists in sending metrics about usage of the following features:
     * - SDK version [string]
     * - API key [string]
     * - MapTiler sesion ID (if opted-in) [string]
     * - if tile caching is enabled [boolean]
     * - if language specified at initialization [boolean]
     * - if terrain is activated at initialization [boolean]
     * - if globe projection is activated at initialization [boolean]
     *
     * In addition, each official module will be added to a list, alongside its version number.
     */
    telemetry: boolean;
    /**
     * Unit to be used
     */
    private _unit;
    /**
     * MapTiler Cloud API key
     */
    private _apiKey;
    /**
     * Set the unit system
     */
    set unit(u: Unit);
    /**
     * Get the unit system
     */
    get unit(): Unit;
    /**
     * Set the MapTiler Cloud API key
     */
    set apiKey(k: string);
    /**
     * Get the MapTiler Cloud API key
     */
    get apiKey(): string;
    /**
     * Set a the custom fetch function to replace the default one
     */
    set fetch(f: FetchFunction);
    /**
     * Get the fetch fucntion
     */
    get fetch(): FetchFunction | null;
}
declare const config: SdkConfig;
export { config, SdkConfig };
