import TilesourceConfig from "../../Models/ThemeConfig/TilesourceConfig"
import { UIEventSource } from "../../Logic/UIEventSource"

export default class ShowOverlayLayer {
    public static implementation: (
        config: TilesourceConfig,
        leafletMap: UIEventSource<any>,
        isShown?: UIEventSource<boolean>
    ) => void

    constructor(
        config: TilesourceConfig,
        leafletMap: UIEventSource<any>,
        isShown: UIEventSource<boolean> = undefined
    ) {
        if (ShowOverlayLayer.implementation === undefined) {
            throw "Call ShowOverlayLayerImplemenation.initialize() first before using this"
        }
        ShowOverlayLayer.implementation(config, leafletMap, isShown)
    }
}