import GroupLayer from './grouplayer.js'; import ThemeLayer from './themelayer.js'; type BaseLayerOptions = { isDefaultChecked?: boolean; disclaimer?: string; metadataUrl?: string; }; declare abstract class BaseLayer { /** * This class is a used in the state of the application, which will be accessed behind a javascript proxy. * This means that each modification made to its properties must come from outside, * because they have to be made through the proxy, so that the modification can be listen. * Therefore, this class must not contain any method which is updating a value directly * For example, any method doing is forbidden here, because the modification be known from the proxy */ id: number; treeItemId: string; name: string; order: number; isDefaultChecked: boolean; disclaimer?: string; metadataUrl?: string; isVisible: boolean; isPinned: boolean; isRemovable: boolean; isSwipeable: boolean; isDraggable: boolean; hasError: boolean; errorMessage: string | null; get hasMetadata(): boolean; isHighlighted: boolean; abstract activeState: string; abstract get active(): boolean; abstract get inactive(): boolean; abstract clone(): BaseLayer; parent?: ThemeLayer | GroupLayer; constructor(id: number, name: string, order: number, options?: BaseLayerOptions); /** * @returns the name of the class to facilitate the identification * of subclasses, even in Proxy objects. */ get className(): string; } export default BaseLayer;