import { ConfigImagery } from '@basemaps/config/build/config/imagery.js';
import { ConfigTileSetRaster } from '@basemaps/config/build/config/tile.set.js';
import { ChangeEventHandler, Component, ReactNode } from 'react';
import { DebugMap, DebugType } from '../debug.map.js';
export interface DebugState {
    featureCogId?: string | number;
    featureCogName?: string;
    featureSourceId?: string | number;
    featureSourceName?: string;
    tileSet?: ConfigTileSetRaster | null;
    imagery?: ConfigImagery | null;
    config?: string | null;
    isCog?: boolean;
    hasCaptureArea?: boolean;
}
export declare class Debug extends Component<{
    map: maplibregl.Map;
}, DebugState> {
    debugMap: DebugMap;
    constructor(p: {
        map: maplibregl.Map;
    });
    componentDidMount(): void;
    waitForMap: () => void;
    updateFromConfig(): void;
    /** Show the source bounding box on the map */
    toggleTileBoundary: ChangeEventHandler;
    /** Show the source bounding box on the map */
    toggleCogs: ChangeEventHandler;
    /** Show the source bounding box on the map */
    toggleSource: ChangeEventHandler;
    /** Show the capture area on the map */
    toggleCaptureArea: ChangeEventHandler;
    _loadingConfig: Promise<void>;
    loadConfig(): Promise<void>;
    render(): ReactNode;
    getWMTSLink(): string;
    renderWMTS(): ReactNode;
    renderPurple(): ReactNode | null;
    renderTileToggle(): ReactNode;
    downloadSource: () => void;
    selectRasterSource: (event: React.ChangeEvent<HTMLSelectElement>) => void;
    selectElevation: (event: React.ChangeEvent<HTMLSelectElement>) => void;
    selectHillShade: (event: React.ChangeEvent<HTMLSelectElement>) => void;
    setHillShadeShown(sourceId: string | null): void;
    /**
     * Add a terrain source that points to production elevation data for debug
     */
    ensureElevationProd(): void;
    setTerrainShown(sourceId: string | null): void;
    setVisibleSource(sourceId: string | null): void;
    renderSourceToggle(): ReactNode;
    renderCogToggle(): ReactNode;
    renderCaptureAreaToggle(): ReactNode;
    getSourcesIds(type: 'raster' | 'raster-dem'): string[];
    renderRasterSourceDropdown(): ReactNode | null;
    renderDemSourceDropdown(sourceIds: string[]): ReactNode | null;
    renderDemHillShadeSourceDropdown(sourceIds: string[]): ReactNode | null;
    renderSliders(): ReactNode | null;
    trackMouseMove(layerId: string, type: DebugType): void;
    setVectorShown(isShown: boolean, type: DebugType): void;
}
