declare class GirafeConfig {
    general: {
        locale: string;
        logLevel: 'debug' | 'info' | 'warn' | 'error';
    };
    languages: {
        translations: {
            [key: string]: string[];
        };
        defaultLanguage: string;
    };
    interface: {
        defaultSelectionComponent: string;
        darkFrontendMode: boolean | undefined;
        darkMapMode: boolean;
    };
    themes: {
        url: string;
        defaultTheme: string;
        imagesUrlPrefix: string;
        showErrorsOnStart: boolean;
        selectionMode: 'add' | 'replace';
    };
    basemaps: {
        show: boolean;
        defaultBasemap: string;
        OSM: boolean;
        SwissTopoVectorTiles: boolean;
        emptyBasemap: boolean;
    };
    treeview: {
        hideLegendWhenLayerIsDeactivated: boolean;
        defaultIconSize: {
            width: number;
            height: number;
        };
    };
    search: {
        url: string;
        objectPreview?: boolean;
        layerPreview?: boolean;
        minResolution?: number;
        defaultFillColor?: string;
        defaultStrokeColor?: string;
        defaultStrokeWidth?: number;
        paintSearchResults?: boolean;
    };
    print: {
        url: string;
        formats?: string[];
        defaultFormat?: string;
        layouts?: string[];
        defaultLayout?: string;
        scales?: number[];
        defaultScale?: number;
        attributeNames?: string[];
        printLegend?: {
            useBbox?: boolean;
            label?: Record<string, boolean | undefined>;
            params?: Record<string, Record<string, unknown>>;
            showGroupsTitle?: boolean;
        };
        customScale?: boolean;
    };
    selection: {
        maxFeature: number;
        defaultFillColor: string;
        defaultStrokeColor: string;
        defaultStrokeWidth: number;
        highlightFillColor: string;
        highlightStrokeColor: string;
    };
    drawing: {
        defaultFillColor: string;
        defaultStrokeColor: string;
        defaultStrokeWidth: number;
        defaultTextSize: number;
        defaultFont: string;
        defaultVertexRadius: number;
        defaultVertexFillColor: string;
        defaultVertexStrokeWidth: number;
    };
    share: {
        service: 'lstu' | 'gmf' | null;
        createUrl: string;
    };
    projections: {
        [key: string]: string;
    };
    map: {
        srid: string;
        startZoom: string;
        startPosition: string;
        maxExtent?: string;
        scales: number[];
        constrainScales: boolean;
        constrainRotation: boolean;
        showScaleLine: boolean;
    };
    map3d?: {
        terrainImagery: {
            url: string;
            srid: 4326 | 3857;
            minLoD: number | undefined;
            maxLoD: number | undefined;
            coverageArea: number[] | undefined;
        };
        tilesetsMaxError: number | undefined;
        terrainUrl: string;
        tilesetsUrls: string[];
        maximumZoomDistance: number;
    };
    lidar: {
        url: string;
    };
    contextmenu: {
        crs: {
            code: string;
            translation: string;
            format: 'decimal' | 'dms';
            precision: number;
        }[];
        sources: {
            id: string;
            translation: string;
            prefix: string;
            suffix: string;
            precision: number;
            crs: string;
            url: string;
        }[];
    };
    crs: {
        code: string;
        definition: string;
    }[];
    csv: {
        encoding: string;
        extension: string;
        includeHeader: boolean;
        quote: string;
        separator: string;
    };
    metadata: {
        metadataUrlPrefix: string;
    };
    infoWindow: {
        defaultWindowWidth: string;
        defaultWindowHeight: string;
        defaultWindowPositionTop: string;
        defaultWindowPositionLeft: string;
    };
    offline?: {
        downloadStartZoom: number;
        downloadEndZoom: number;
    };
    query: {
        legacy: boolean;
    };
    gmfauth?: {
        url: string;
        loginRequired: boolean;
        checkSessionOnLoad: boolean;
        audience: string[];
        authMode: 'cookie';
        refererPolicy: ReferrerPolicy;
        audienceExcludedPaths: string[];
    };
    oauth?: {
        issuer: {
            url: string;
            algorithm: 'oauth2' | 'oidc';
            codeChallengeMethod: string;
            clientId: string;
            scope: string;
            loginRequired: boolean;
            checkSessionOnLoad: boolean;
            audience: string[];
            audienceExcludedPaths: string[];
        };
        geomapfish: {
            userInfoUrl: string;
            loginUrl: string;
            logoutUrl: string;
            anonymousUsername: string;
            authMode: 'token' | 'cookie';
            refererPolicy: ReferrerPolicy;
        };
    };
    userdata: {
        source: 'localStorage' | 'server';
        getUrl: string | undefined;
        postUrl: string | undefined;
    };
    extendedConfig?: Record<string, object>;
    static readonly DEFAULT_LOCALE = "en-US";
    /**
     * Creates the configuration of the app validating the json passed or giving default values.
     *
     * Every property of config that is not complying with GirafeConfig type is ignored.
     * @param config the configuration
     */
    constructor(config: GirafeConfig);
    private initConfigProjections;
    private initConfigMap3D;
    private initConfigMap;
    private initConfigQuery;
    private initConfigDrawing;
    private initConfigShare;
    private initConfigSelection;
    private initConfigPrint;
    private initConfigSearch;
    private initConfigTreeview;
    private initConfigBasemaps;
    private initConfigLidar;
    private initConfigCsv;
    private initConfigMetadata;
    private initConfigInfoWindow;
    private initConfigOffline;
    private initConfigThemes;
    private initConfigLanguages;
    private initConfigInterface;
    private initConfigGeneral;
    private initGmfOauth;
    private initConfigOauth;
    private initUserData;
    private initContextMenu;
    private initCRS;
    private initExtendedConfig;
}
export default GirafeConfig;
