import GirafeSingleton from '../../base/GirafeSingleton.js';
import Layer from '../../models/layers/layer.js';
/**
 * Manages layers that hold user-derived data such as drawings or local files. Each type of user data layer is
 * grouped under a theme layer in the layer tree.
 * This manager provides functionality for adding, organizing, and toggling visibility of user data layers
 * in the layer tree.
 */
export default class UserLayerManager extends GirafeSingleton {
    private themeLayerItemIds;
    private readonly userThemeConfig;
    private get state();
    private getThemeLayerByTreeId;
    private getUserLayerByTreeId;
    private getOrCreateThemeLayer;
    private getThemeConfig;
    /**
     * Adds a user data layer to the layer tree. Each layer is added to the corresponding theme.
     * If the theme layer does not exist yet, it is created according to a set of pre-defined configuration values.
     */
    addUserLayerToTree(layer: Layer): void;
    /**
     * Removes a user data layer from the layer tree.
     * If the associated theme layer becomes empty after the user layer is removed, the theme layer is also removed.
     */
    removeUserLayerFromTree(layer: Layer): void;
}
