/**
 * ZDC type definitions
 * Creation date: 2026/3/12 15:42:28
 * 
 * Note: This file is automatically generated. Do not edit it manually.
 * 
 * Copyright © ZENRIN CO., LTD. All Rights Reserved.
 */
declare namespace ZDC {
    class LatLng {
        constructor(lat: number, lng: number);
        lat: number;
        lng: number;
        toString(): string;
    }
    class LatLngBounds {
        constructor(southWest: LatLng, northEast?: LatLng);
        southWest: LatLng;
        northEast: LatLng;
        extend: (latlng: LatLng) => void;
        getCenter: () => LatLng;
        getSouthWest: () => LatLng;
        getNorthEast: () => LatLng;
        getNorthWest: () => LatLng;
        getSouthEast: () => LatLng;
        getWest: () => number;
        getSouth: () => number;
        getEast: () => number;
        getNorth: () => number;
    }
    class Point {
        constructor(x: number, y: number);
        x: number;
        y: number;
        toString(): string;
    }
    class GLLayer extends Layer {
        addWidget(widget: IShape): string | undefined;
    }
    class HTMLLayer extends Layer {
        addWidget(widget: IWidget): string | undefined;
    }
    class Layer {
        private __brandLayer;
        show(): void;
        hide(): void;
        addWidget(widget: IShape | IWidget): string | undefined;
        getWidget(id: string): IShape | IWidget | null;
        getAllWidgets(): Array<IShape | IWidget>;
        removeWidget(id: string): void;
        removeAllWidgets(): void;
    }
    type CenterZoom = {
        center: LatLng;
        zoom: number;
    };
    type MapOptions = {
        zipsDomainAuth: string;
        zipsDomainAuthAdditionalQuery?: any;
        zipsDomainApi: string;
        zipsDomainApiAdditionalQuery?: any;
        zipsDomainApiRequestHeader?: any;
        zipsDomainMap?: string;
        zipsDomainMapAdditionalQuery?: any;
        zipsDomainWmts?: string;
        zipsDomainWmtsAdditionalQuery?: any;
        zipsDomainWmtsRequestHeader?: any;
        zipsParameterWmts?: string;
        zipsResolutionWmts?: string;
        zipsDomainStyle?: string;
        zipsKid: string;
        zipsMapType: string;
        zipsAllMapType?: string;
        zipsServiceInfo?: string;
        zipsAid?: string;
        zipsAuthCycle: string;
        zipsVersionCheckCycle: string;
        zipsPolling: string;
        zipsAreaCode: string;
        zipsEdition?: string;
        zipsMunicipalCode?: string;
        center?: LatLng;
        zoom?: number;
        scale?: number;
        heading?: number;
        tilt?: number;
        minZoom?: number;
        maxZoom?: number;
        movable?: boolean;
        zoomable?: boolean;
        rotatable?: boolean;
        tiltable?: boolean;
        keyboardOperation?: boolean;
        mouseOperation?: boolean;
        touchOperation?: boolean;
        mouseWheelZoom?: boolean;
        mouseDblclickZoom?: boolean;
        touchPinchZoom?: boolean;
        touchDbltapZoom?: boolean;
        centerZoom?: boolean;
        mouseWheelReverseZoom?: boolean;
        mouseWheelZoomAmount?: number;
        mouseWheelNotchPerZoomLevel?: number;
        mouseScrollFollow?: boolean;
        moveMomentum?: boolean;
        moveMomentumRatio?: number;
        autoJudgeDrawMode?: boolean;
        displayFloorMap?: boolean;
        fontName?: string;
        annotationRatio?: number;
        tileCache?: number;
    };
    class Map {
        constructor(element: HTMLElement, options: MapOptions, successFunc: Function, failFunc: Function);
        reinitialize(options: MapOptions, successFunc: Function, failFunc: Function): void;
        getCenter(): LatLng;
        setCenter(center: LatLng): void;
        getScale(): number;
        setScale(scale: number): void;
        getZoom(): number;
        setZoom(zoom: number): void;
        getHeading(): number;
        setHeading(heading: number): void;
        getTilt(): number;
        setTilt(tilt: number): void;
        getZipsEdition(): string;
        setZipsEdition(edition: string): void;
        getZipsMunicipalCode(): string;
        setZipsMunicipalCode(code: string): void;
        getLatLngBounds(): LatLngBounds;
        latlngToPoint(latlng: LatLng): Point | number;
        pointToLatLng(point: Point): LatLng | null;
        latlngToWebMercator(latlng: LatLng): number[];
        webMercatorToLatlng(point: number[]): LatLng;
        getAdjustZoom(latlngs: Array<LatLng>, options?: {
            fix?: boolean;
            offset?: {
                x?: number;
                y?: number;
            };
        }): CenterZoom | null;
        refreshSize(): void;
        getAreaNote(latlng: LatLng): Array<Array<string | number | null>>;
        getFeature(point: Point, mode?: string): Array<any>;
        getFeatureZid(point: Point, mode?: string): Array<string>;
        getDCN(point: Point): Array<any>;
        addControl(control: IControl): void;
        removeControl(control: IControl, callUpdatePos?: boolean): void;
        addWidget(widget: IShape | IWidget): string | undefined;
        removeWidget(widget: IShape | IWidget | string): void;
        getCurrentFloor(): any[] | null;
        getCurrentFloorList(): Array<any[]> | null;
        setCurrentFloor(floor: any[] | null): void;
        showLabel(): void;
        hideLabel(): void;
        labelStatus(): boolean;
        updateStyle(defs: any): any;
        setFocusDCN(defs: Array<string> | string | null): void;
        getFocusDCN(): Array<string> | null;
        requestAPI(api: string, param: any, callback: Function): void;
        addEventListener(eventName: string, listener: Function): void;
        removeEventListener(eventName: string, listener: Function): void;
        convertCrs(points: Array<Point>, inCrs: string, outCrs: string): Array<Point>;
        calcDistance(latlngs: Array<LatLng>): number;
        calcArea(latlngs: Array<LatLng> | Array<Array<LatLng>>): number;
        degTodms(deg: number): {
            deg: number;
            min: number;
            sec: number;
        };
        degToms(deg: number): number;
        dmsTodeg(deg: number, min: number, sec: number): number;
        dmsToms(deg: number, min: number, sec: number): number;
        msTodeg(ms: number): number;
        msTodms(ms: number): {
            deg: number;
            min: number;
            sec: number;
        };
        getMeshCode({ latlng, level }: {
            latlng: LatLng;
            level: number;
        }): {
            mesh: Array<string>;
            box: LatLngBounds;
        };
        getLatLngToLineDistance(p1: LatLng, p2: LatLng, p: LatLng): number;
        getLatLngToLineNearLatLng(p1: LatLng, p2: LatLng, p: LatLng): LatLng;
        getLatLngToRectDistance(box: LatLngBounds, p: LatLng): number;
        getLineCrossLineLatLng(p1: LatLng, p2: LatLng, p3: LatLng, p4: LatLng): LatLng | null | number;
        getLineCrossPolylineLatLngs(p1: LatLng, p2: LatLng, latlngs: Array<LatLng>): Array<LatLng> | null | number;
        getLineCrossRectLatLngs(p1: LatLng, p2: LatLng, box: LatLngBounds): Array<LatLng> | null | number;
        isPolygonContainLatLng(p: LatLng, latlngs: Array<LatLng>): boolean;
        getMapSize(): {
            width: number;
            height: number;
        };
        setVisibleContour(visible: boolean): void;
        getVisibleContour(): boolean;
        showFeature(zid: string, color?: Array<number>): void;
        unshowFeature(zid: string): void;
        isShowingFeature(zid: string): boolean;
        destruct(): void;
        drawFigure(drawMode: string, options?: any, afterDrawingFunc?: Function, afterEditFunc?: Function): void;
        stopDrawFigure(): void;
        selectFigure(afterEditFunc?: Function): void;
        deleteAllFigures(): void;
        setFigureOptions(options: any): void;
        deleteFigure(): void;
        backToPreviousDrawingStep(): void;
        hideFigures(): void;
        showFigures(): void;
        fixFigure(): void;
        getListFigures(): Array<IWidget | IShape>;
        addLayer(layer: GLLayer | HTMLLayer, index: number): boolean;
        removeLayer(layer: GLLayer | HTMLLayer): void;
        removeAllLayers(): void;
        getWidget(id: string): IWidget | IShape | null;
        getAllWidgets(): Array<IWidget | IShape>;
        removeAllWidgets(): void;
        getOnewayInfo(point: Point): any | null;
        latLngBoundsToTmsTileXY(bounds: LatLngBounds, zoom: number): Array<Point>;
        latLngBoundsToGeohash(bounds: LatLngBounds, precision: number): Array<string>;
    }
    class CenterMarker extends IControl {
    }
    class Compass extends IControl {
        constructor(position?: string, offset?: Point);
    }
    class GLLabel extends IShape {
        constructor(latlng: LatLng, src: {
            text?: string;
            imgSrc?: string;
        }, options?: {
            font?: string;
            fontSize?: number;
            color?: string;
            verticalAlign?: number;
            fontOpacity?: number;
            backgroundColor?: string;
            backgroundOpacity?: number;
            borderColor?: string;
            borderWidth?: number;
            position?: string;
            offset?: Point;
            width?: number;
            height?: number;
            imgOpacity?: number;
            drawPopup?: boolean;
            verticalMargin?: number;
            horizontalMargin?: number;
            closeButton?: boolean;
            movableOpen?: boolean;
            draw?: string;
            rotatedView?: number;
            propagation?: boolean;
        });
        getLatLng(): LatLng;
        setLatLng(latlng: LatLng): void;
        setOptions(options: {
            font?: string;
            fontSize?: number;
            color?: string;
            verticalAlign?: number;
            fontOpacity?: number;
            backgroundColor?: string;
            backgroundOpacity?: number;
            borderColor?: string;
            borderWidth?: number;
            position?: string;
            offset?: Point;
            width?: number;
            height?: number;
            imgOpacity?: number;
            drawPopup?: boolean;
            verticalMargin?: number;
            horizontalMargin?: number;
            closeButton?: boolean;
            movableOpen?: boolean;
            draw?: string;
            rotatedView?: number;
            propagation?: boolean;
        }): void;
        setSrc(src: {
            text?: string;
            imgSrc?: string;
        }, callback?: Function): void;
    }
    class GroundOverlay extends IShape {
        constructor(bounds: LatLngBounds, imageUrl: string, options?: {
            opacity?: number;
            requestHeader?: any;
            draw?: string;
            rotatedView?: number;
            propagation?: boolean;
        });
        getBounds(): LatLngBounds;
        setBounds(bounds: LatLngBounds): void;
        setImageUrl(imageUrl: string): void;
        setOptions(options: {
            opacity?: number;
            requestHeader?: any;
            draw?: string;
            rotatedView?: number;
            propagation?: boolean;
        }): void;
    }
    class IControl {
        private __brandIControl;
    }
    class ImageLayer extends IShape {
        constructor(urlTemplate: string, options?: {
            opacity?: number;
            minZoom?: number;
            maxZoom?: number;
            maxNativeZoom?: number;
            split?: boolean;
            resolution?: number;
            reduceRequests?: boolean;
            requestHeader?: any;
            draw?: string;
            propagation?: boolean;
        });
        setUrlTemplate(urlTemplate: string): void;
        setOptions(options: {
            opacity?: number;
            minZoom?: number;
            maxZoom?: number;
            maxNativeZoom?: number;
            split?: boolean;
            resolution?: number;
            reduceRequests?: boolean;
            requestHeader?: any;
            draw?: string;
            propagation?: boolean;
        }): void;
        reset(): void;
    }
    class IShape {
        private __brandIShape;
        setZIndex(zIndex: number): void;
        show(): void;
        hide(): void;
        addEventListener(eventName: string, listener: Function): void;
        removeEventListener(eventName: string, listener: Function): void;
        getId(): string;
    }
    class IWidget {
        private __brandIWidget;
        NATIVE_WHEEL_EVENT: string;
        NATIVE_MOUSE_EVENT_LIST: string[];
        NATIVE_TOUCH_EVENT_LIST: string[];
        NATIVE_EVENT_LIST: string[];
        setZIndex(zIndex: number): void;
        show(): void;
        hide(): void;
        addEventListener(eventName: string, listener: Function): void;
        removeEventListener(eventName: string, listener: Function): void;
        getId(): string;
    }
    class Marker extends IWidget {
        constructor(latlng: LatLng, options?: {
            styleId?: number;
            offset?: Point;
            contentStyleId?: number;
            contentOffset?: Point;
            opacity?: number;
            custom?: {
                base?: {
                    imgSrc: string;
                    imgPos?: Point;
                    imgSize?: Point;
                };
                content?: {
                    imgSrc: string;
                    imgPos?: Point;
                    imgSize?: Point;
                };
            };
            rotatedView?: number;
            propagation?: boolean;
            draggable?: boolean;
        });
        getLatLng(): LatLng;
        setLatLng(latlng: LatLng): void;
        setOptions(options: {
            styleId?: number;
            offset?: Point;
            contentStyleId?: number;
            contentOffset?: Point;
            opacity?: number;
            custom?: {
                base?: {
                    imgSrc: string;
                    imgPos?: Point;
                    imgSize?: Point;
                };
                content?: {
                    imgSrc: string;
                    imgPos?: Point;
                    imgSize?: Point;
                };
            };
            rotatedView?: number;
            propagation?: boolean;
        }): void;
    }
    class MarkerCluster extends IWidget {
        constructor(markers: Array<Marker>, options?: {
            maxZoom?: number;
            cluster?: Function;
            textStyle?: string;
            method?: string;
            radius?: number;
        });
        setMethod(method: string): void;
        setRadius(radius: number): void;
        setMaxZoom(maxZoom: number): void;
        addMarkers(markers: Array<Marker>): void;
        removeMarkers(): void;
        getClusterMarker(): Array<any>;
        getMaxZoom(): number;
        setOptions(options: {
            maxZoom?: number;
            cluster?: Function;
            textStyle?: string;
            method?: string;
            radius?: number;
        }): void;
    }
    type OvalRadius = {
        x: number;
        y: number;
    };
    class Oval extends IShape {
        constructor(latlng: LatLng, radius: OvalRadius, options?: {
            segment?: number;
            stroke?: string;
            strokeWidth?: number;
            strokePattern?: string;
            fill?: string;
            fillPattern?: string;
            opacity?: number;
            lineOpacity?: number;
            fillOpacity?: number;
            draw?: string;
            rotatedView?: number;
            propagation?: boolean;
        });
        rotate(deg: number): void;
        getLatLng(): LatLng;
        setLatLng(latlng: LatLng): void;
        getRadius(): OvalRadius;
        setRadius(radius: OvalRadius): void;
        setOptions(options: {
            segment?: number;
            stroke?: string;
            strokeWidth?: number;
            strokePattern?: string;
            fill?: string;
            fillPattern?: string;
            opacity?: number;
            lineOpacity?: number;
            fillOpacity?: number;
            draw?: string;
            rotatedView?: number;
            propagation?: boolean;
        }): void;
        getPerimeter(): number;
        getArea(): number;
    }
    class PointSprite extends IShape {
        constructor(PSData: Array<Array<number>>, options?: {
            styleId?: number;
            src?: string;
            size?: number;
            color?: Array<number>;
            opacity?: number;
            offset?: Point;
            draw?: string;
            propagation?: boolean;
        });
        setOptions(options: {
            styleId?: number;
            src?: string;
            size?: number;
            color?: Array<number>;
            opacity?: number;
            offset?: Point;
            draw?: string;
            propagation?: boolean;
        }): void;
        getLatLng(PSID: number): LatLng | null;
        setLatLng(PSID: number, lat: number, lng: number): void;
        getPSData(): Array<Array<number>>;
        setPSData(PSData: Array<Array<number>>): void;
        getPSID(point: Point): number | null;
    }
    class Polygon extends IShape {
        constructor(latlngs: Array<LatLng> | Array<Array<LatLng>>, options?: {
            stroke?: string;
            strokeWidth?: number;
            strokePattern?: string;
            fill?: string;
            fillPattern?: string;
            opacity?: number;
            lineOpacity?: number;
            fillOpacity?: number;
            draw?: string;
            rotatedView?: number;
            propagation?: boolean;
        });
        rotate(deg: number): void;
        getShape(): Array<LatLng>;
        getFullShape(): Array<Array<LatLng>>;
        setShape(latlngs: Array<LatLng> | Array<Array<LatLng>>): void;
        setOptions(options: {
            stroke?: string;
            strokeWidth?: number;
            strokePattern?: string;
            fill?: string;
            fillPattern?: string;
            opacity?: number;
            lineOpacity?: number;
            fillOpacity?: number;
            draw?: string;
            rotatedView?: number;
            propagation?: boolean;
        }): void;
        addPoint(latlng: LatLng): void;
        removeAllPoints(): void;
        removePoint(index: number): void;
        changePoint(index: number, latlng: LatLng): void;
    }
    class Polyline extends IShape {
        constructor(latlngs: Array<LatLng>, options?: {
            color?: string;
            width?: number;
            pattern?: string;
            opacity?: number;
            draw?: string;
            rotatedView?: number;
            propagation?: boolean;
        });
        rotate(deg: number): void;
        getShape(): Array<LatLng>;
        setShape(latlngs: Array<LatLng>): void;
        setOptions(options: {
            color?: string;
            width?: number;
            pattern?: string;
            opacity?: number;
            draw?: string;
            rotatedView?: number;
            propagation?: boolean;
        }): void;
        addPoint(latlng: LatLng): void;
        removeAllPoints(): void;
        removePoint(index: number): void;
        changePoint(index: number, latlng: LatLng): void;
    }
    class Popup extends IWidget {
        constructor(latlng: LatLng, options?: {
            htmlSource?: string;
            size?: {
                w?: number;
                h?: number;
            };
            offset?: Point;
            closeButton?: boolean;
            movableOpen?: boolean;
            class_name?: string;
            arrow_class_name?: string;
            rotatedView?: number;
            propagation?: boolean;
            contextMenuShowable?: boolean;
            draggable?: boolean;
        });
        getLatLng(): LatLng;
        setLatLng(latlng: LatLng): void;
        setOptions(options: {
            htmlSource?: string;
            size?: {
                w?: number;
                h?: number;
            };
            offset?: Point;
            closeButton?: boolean;
            movableOpen?: boolean;
            class_name?: string;
            arrow_class_name?: string;
            rotatedView?: number;
            propagation?: boolean;
        }): void;
    }
    class ScaleBar extends IControl {
        constructor(position?: string, offset?: Point);
    }
    class StaticUserWidget extends IWidget {
        constructor(offset: Point, options: {
            html?: string;
            dom?: HTMLElement;
            size?: {
                width?: number;
                height?: number;
            };
            propagation?: boolean;
            contextMenuShowable?: boolean;
            draggable?: boolean;
        });
        move(position: Point): void;
        getDom(): Array<HTMLElement>;
        setOptions(options: {
            html?: string;
            dom?: HTMLElement;
            size?: {
                width?: number;
                height?: number;
            };
            propagation?: boolean;
        }): void;
    }
    class UserWidget extends IWidget {
        constructor(latlng: LatLng, options?: {
            htmlSource?: string;
            offset?: Point;
            rotatedView?: number;
            propagation?: boolean;
            contextMenuShowable?: boolean;
            draggable?: boolean;
        });
        getLatLng(): LatLng;
        setLatLng(latlng: LatLng): void;
        getDom(): Array<HTMLElement>;
        setOptions(options: {
            htmlSource?: string;
            offset?: Point;
            rotatedView?: number;
            propagation?: boolean;
        }): void;
    }
    class ZoomButton extends IControl {
        constructor(position?: string, offset?: Point);
    }
    const MARKER_COLOR_ID_BLUE_S: number;
    const MARKER_COLOR_ID_RED_S: number;
    const MARKER_COLOR_ID_GREEN_S: number;
    const MARKER_COLOR_ID_YELLOW_S: number;
    const MARKER_COLOR_ID_GRAY_S: number;
    const MARKER_COLOR_ID_BLUE_L: number;
    const MARKER_COLOR_ID_RED_L: number;
    const MARKER_COLOR_ID_GREEN_L: number;
    const MARKER_COLOR_ID_YELLOW_L: number;
    const MARKER_COLOR_ID_GRAY_L: number;
    const MARKER_COLOR_ID_INFO_WHITE_S: number;
    const MARKER_COLOR_ID_INFO_BLACK_S: number;
    const MARKER_COLOR_ID_INFO_WHITE_M: number;
    const MARKER_COLOR_ID_INFO_BLACK_M: number;
    const MARKER_COLOR_ID_INFO_WHITE_L: number;
    const MARKER_COLOR_ID_INFO_BLACK_L: number;
    const MARKER_COLOR_ID_INFO_WHITE_LL: number;
    const MARKER_COLOR_ID_INFO_BLACK_LL: number;
    const MARKER_NUMBER_ID_STAR_L: number;
    const MARKER_NUMBER_ID_1_L: number;
    const MARKER_NUMBER_ID_2_L: number;
    const MARKER_NUMBER_ID_3_L: number;
    const MARKER_NUMBER_ID_4_L: number;
    const MARKER_NUMBER_ID_5_L: number;
    const MARKER_NUMBER_ID_6_L: number;
    const MARKER_NUMBER_ID_7_L: number;
    const MARKER_NUMBER_ID_8_L: number;
    const MARKER_NUMBER_ID_9_L: number;
    const MARKER_NUMBER_ID_10_L: number;
    const MARKER_NUMBER_ID_11_L: number;
    const MARKER_NUMBER_ID_12_L: number;
    const MARKER_NUMBER_ID_13_L: number;
    const MARKER_NUMBER_ID_14_L: number;
    const MARKER_NUMBER_ID_15_L: number;
    const MARKER_NUMBER_ID_16_L: number;
    const MARKER_NUMBER_ID_17_L: number;
    const MARKER_NUMBER_ID_18_L: number;
    const MARKER_NUMBER_ID_19_L: number;
    const MARKER_NUMBER_ID_20_L: number;
    const MARKER_NUMBER_ID_21_L: number;
    const MARKER_NUMBER_ID_22_L: number;
    const MARKER_NUMBER_ID_23_L: number;
    const MARKER_NUMBER_ID_24_L: number;
    const MARKER_NUMBER_ID_25_L: number;
    const MARKER_NUMBER_ID_26_L: number;
    const MARKER_NUMBER_ID_27_L: number;
    const MARKER_NUMBER_ID_28_L: number;
    const MARKER_NUMBER_ID_29_L: number;
    const MARKER_NUMBER_ID_30_L: number;
    const MARKER_NUMBER_ID_STAR_S: number;
    const MARKER_NUMBER_ID_1_S: number;
    const MARKER_NUMBER_ID_2_S: number;
    const MARKER_NUMBER_ID_3_S: number;
    const MARKER_NUMBER_ID_4_S: number;
    const MARKER_NUMBER_ID_5_S: number;
    const MARKER_NUMBER_ID_6_S: number;
    const MARKER_NUMBER_ID_7_S: number;
    const MARKER_NUMBER_ID_8_S: number;
    const MARKER_NUMBER_ID_9_S: number;
    const MARKER_NUMBER_ID_10_S: number;
    const MARKER_NUMBER_ID_11_S: number;
    const MARKER_NUMBER_ID_12_S: number;
    const MARKER_NUMBER_ID_13_S: number;
    const MARKER_NUMBER_ID_14_S: number;
    const MARKER_NUMBER_ID_15_S: number;
    const MARKER_NUMBER_ID_16_S: number;
    const MARKER_NUMBER_ID_17_S: number;
    const MARKER_NUMBER_ID_18_S: number;
    const MARKER_NUMBER_ID_19_S: number;
    const MARKER_NUMBER_ID_20_S: number;
    const MARKER_NUMBER_ID_21_S: number;
    const MARKER_NUMBER_ID_22_S: number;
    const MARKER_NUMBER_ID_23_S: number;
    const MARKER_NUMBER_ID_24_S: number;
    const MARKER_NUMBER_ID_25_S: number;
    const MARKER_NUMBER_ID_26_S: number;
    const MARKER_NUMBER_ID_27_S: number;
    const MARKER_NUMBER_ID_28_S: number;
    const MARKER_NUMBER_ID_29_S: number;
    const MARKER_NUMBER_ID_30_S: number;
}

interface Window {
  ZDC: typeof ZDC;
}

