import { ColorDef } from "@itwin/core-common";
import { MapLayerSource, Tool } from "@itwin/core-frontend";
/** Base class for attaching map layer tool. */
declare class AttachMapLayerBaseTool extends Tool {
    protected _isBackground: boolean;
    protected _isBase: boolean;
    constructor(_isBackground?: boolean, _isBase?: boolean);
    protected doAttach(source?: MapLayerSource): void;
}
/** Attach a map layer from URL base class. A layer is attached for each unique model in the selection
 * @beta
 */
export declare class AttachModelMapLayerTool extends Tool {
    protected _formatId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    static toolId: string;
    constructor(_formatId: string);
    run(nameIn?: string, drapeTarget?: string): Promise<boolean>;
    parseAndRun(...args: string[]): Promise<boolean>;
    onRestartTool(): Promise<void>;
}
/** Attach a map layer from URL base class. */
declare class AttachMapLayerByURLBaseTool extends AttachMapLayerBaseTool {
    protected _formatId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    constructor(_formatId: string);
    run(url: string, name?: string, userName?: string, password?: string): Promise<boolean>;
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** This tool attaches a WMS map layer from a given URL.
 * @beta
 */
export declare class AttachWmsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
    static toolId: string;
    constructor();
    /** This method runs the tool, attaching a WMS map layer from a given URL.
     * @param args contains url, name, userName, password in array order
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** This tool attaches a WMTS map layer from a given URL.
 * @beta
 */
export declare class AttachWmtsMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
    static toolId: string;
    constructor();
    /** This method runs the tool, attaching a WMTS map layer from a given URL.
     * @param args contains url, name, userName, password in array order
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** This tool attaches an ArcGIS map layer from a given URL.
 * @beta
 */
export declare class AttachArcGISMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
    static toolId: string;
    constructor();
}
/** This tool attaches an ArcGIS map layer from a given URL.
 * @beta
 */
export declare class AttachArcGISFeatureMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
    static toolId: string;
    constructor();
}
/** This tool attaches an ArcGIS map layer from a given URL.
 * @beta
 */
export declare class AttachOgcApiFeaturesMapLayerTool extends AttachMapLayerByURLBaseTool {
    static toolId: string;
    constructor();
}
/** This tool attaches a map layer from a given tile URL.
 * @beta
 */
export declare class AttachTileURLMapLayerByUrlTool extends AttachMapLayerByURLBaseTool {
    static toolId: string;
    constructor();
}
/** This tool add a Map Layer from a specified name (look up in MapLayerSources.json).
 * @beta
 */
export declare class AttachMapLayerTool extends AttachMapLayerBaseTool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    /** This method runs the tool, adding a map layer from a specified name in MayLayerSources.json.
     * @param name the name of the map layer to add
     */
    run(name: string): Promise<boolean>;
    /** Executes this tool's run method with args[0] containing `name`.
     * @see [[run]]
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** This tool attaches a Overlay map layer.
 * @beta
 */
export declare class AttachMapOverlayTool extends AttachMapLayerTool {
    static toolId: string;
    constructor();
}
/** Sets map layer base tool.
 * @beta
 */
export declare class SetMapBaseTool extends AttachMapLayerTool {
    static toolId: string;
    constructor();
}
/** Detach Map Layers Tool.
 * @beta
 */
export declare class DetachMapLayersTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    parseAndRun(..._args: string[]): Promise<boolean>;
    run(): Promise<boolean>;
}
/** This tool sets the visibility of the map layer.
 * @beta
 */
export declare class MapLayerVisibilityTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    /** This method runs the tool, setting the visibility of a map layer.
     * @param layerIndex the index of the layer to change
     * @param visible a boolean that should be true if the layer should be visible
     */
    run(layerIndex: number, enable?: boolean): Promise<boolean>;
    /** Executes this tool's run method with args[0] containing `enable` and args[1] containing `layerIndex`.
     * @see [[run]]
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** This tool reorders map layers.
 * @beta
 */
export declare class ReorderMapLayers extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    /** This method runs the tool, reordering the map layers.
     * @param from a numeric value specifying the layer index that is being moved
     * @param from a numeric value specifying the layer index to move that layer to
     */
    run(from: number, to: number): Promise<boolean>;
    /** Executes this tool's run method with args[0] containing `from` and args[1] containing `to`.
     * @see [[run]]
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** This tool sets the transparency of a map layer.
 * @beta
 */
export declare class MapLayerTransparencyTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    /** This method runs the tool, setting the transparency of a map layer.
     * @param layerIndex the index of the layer to change
     * @param transparency a numeric value in the range 0.0 (fully opaque) to 1.0 (fully transparent)
     */
    run(layerIndex: number, transparency: number): Promise<boolean>;
    /** Executes this tool's run method with args[0] containing `transparency` and args[1] containing `layerIndex`.
     * @see [[run]]
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** This tool sets the visibility of the map sublayer.
 * @beta
 */
export declare class MapLayerSubLayerVisibilityTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    /** This method runs the tool, setting the visibility of a map sublayer.
     * @param layerIndex the index of the layer to change
     * @param visible a boolean that should be true if the sublayer should be visible
     */
    run(layerIndex: number, visible: boolean): Promise<boolean>;
    /** Executes this tool's run method with args[0] containing `transparency` and args[1] containing `layerIndex`.
     * @see [[run]]
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** This tool changes the viewport so it is zoomed to the range of a map layer.
 * @beta
 */
export declare class MapLayerZoomTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    /** This method runs the tool, changing the viewport so it is zoomed to the range of a map layer.
     * @param layerIndex the index of the layer whose range to zoom to
     */
    run(layerIndex: number): Promise<boolean>;
    /** Executes this tool's run method with args[0] containing `layerIndex`.
     * @see [[run]]
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** This tool toggles whether to apply terrain heights to the map.
 * @beta
 */
export declare class ToggleTerrainTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    /** This method runs the tool, changing whether to apply terrain heights to the map.
     * @param enable whether or not to enable terrain heights on the map
     */
    run(enable?: boolean): Promise<boolean>;
    /** Executes this tool's run method with args[0] containing `enable`.
     * @see [[run]]
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** This tool changes the color of the base map.
 * @beta
 */
export declare class MapBaseColorTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    /** This method runs the tool, changing the color of the base map.
     * @param color the color for the base map
     */
    run(color: ColorDef): Promise<boolean>;
    /** Executes this tool's run method with args[0] containing a 0 to 255 red component, args[1] containing a 0 to 255 green component, and args[2] containing a 0 to 255 blue component.
     * These rgb values will be used to construct the `color` parameter passed to this tool's run method.
     * @see [[run]]
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** This tool changes the transparency of the base map.
 * @beta
 */
export declare class MapBaseTransparencyTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    /** This method runs the tool, changing the transparency of the base map.
     * @param transparency a numeric value in range 0.0 to 1.0 whether 0.0 means fully opaque and 1.0 means fully transparent
     */
    run(transparency: number): Promise<boolean>;
    /** Executes this tool's run method with args[0] containing `transparency`.
     * @see [[run]]
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** This tool changes the visibility of the base map.
 * @beta
 */
export declare class MapBaseVisibilityTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    /** This method runs the tool, changing the visibility of the base map.
     * @param visible a boolean which specifies whether or not to make the base map visible
     */
    run(visible: boolean): Promise<boolean>;
    /** Executes this tool's run method with args[0] containing `visible`.
     * @see [[run]]
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
export {};
//# sourceMappingURL=MapLayerTool.d.ts.map