import { Camera, Hilite } from "@itwin/core-common";
import { FlashSettings, TileBoundingBoxes, Tool, Viewport } from "@itwin/core-frontend";
/** Base class for a tool that toggles some aspect of a Viewport.
 * @beta
 */
export declare abstract class ViewportToggleTool extends Tool {
    static get minArgs(): number;
    static get maxArgs(): number;
    protected abstract toggle(vp: Viewport, enable?: boolean): Promise<void>;
    run(enable?: boolean): Promise<boolean>;
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** Freeze or unfreeze the scene for the selected viewport. While the scene is frozen, no new tiles will be selected for drawing within the viewport.
 * @beta
 */
export declare class FreezeSceneTool extends ViewportToggleTool {
    static toolId: string;
    protected toggle(vp: Viewport, enable?: boolean): Promise<void>;
}
/** Set the tile bounding volume decorations to display in the selected viewport.
 * Omitting the argument turns on Volume bounding boxes if bounding boxes are currently off; otherwise, toggles them off.
 * Allowed inputs are "none", "volume", "content", "both" (volume and content), "children", and "sphere".
 * @beta
 */
export declare class ShowTileVolumesTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    run(boxes?: TileBoundingBoxes): Promise<boolean>;
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** Sets or unsets or flips the deactivated state of one or more tile tree references within the selected viewport.
 * Deactivated tile tree references are omitted from the scene.
 * This is useful for isolating particular tile trees or tiles for debugging.
 * @beta
 */
export declare class ToggleTileTreeReferencesTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    private _modelIds?;
    private _which?;
    private _deactivate?;
    parseAndRun(...args: string[]): Promise<boolean>;
    run(): Promise<boolean>;
}
/** This tool sets the aspect ratio skew for the selected viewport.
 * @beta
 */
export declare class SetAspectRatioSkewTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    /** This method runs the tool, setting the aspect ratio skew for the selected viewport.
     * @param skew the aspect ratio (x/y) skew value; 1.0 or undefined removes any skew
     */
    run(skew?: number): Promise<boolean>;
    /** Executes this tool's run method.
     * @param args the first entry of this array contains the `skew` argument
     * @see [[run]]
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** Changes the [ModelSubCategoryHiliteMode]($frontend) for the [HiliteSet]($frontend) associated with the selected Viewport.
 * @beta
 */
export declare class ChangeHiliteModeTool extends Tool {
    static get minArgs(): number;
    static get maxArgs(): number;
    static toolId: string;
    run(mode?: string): Promise<boolean>;
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** Changes the selected viewport's hilite or emphasis settings.
 * @beta
 */
export declare abstract class ChangeHiliteTool extends Tool {
    static get minArgs(): number;
    static get maxArgs(): number;
    run(settings?: Hilite.Settings): Promise<boolean>;
    protected abstract apply(vp: Viewport, settings: Hilite.Settings | undefined): void;
    protected abstract getCurrentSettings(vp: Viewport): Hilite.Settings;
    parseAndRun(...inputArgs: string[]): Promise<boolean>;
}
/** Changes the selected viewport's hilite settings, or resets to defaults.
 * @beta
 */
export declare class ChangeHiliteSettingsTool extends ChangeHiliteTool {
    static toolId: string;
    protected getCurrentSettings(vp: Viewport): Hilite.Settings;
    protected apply(vp: Viewport, settings?: Hilite.Settings): void;
}
/** Changes the selected viewport's emphasis settings.
 * @beta
 */
export declare class ChangeEmphasisSettingsTool extends ChangeHiliteTool {
    static toolId: string;
    protected getCurrentSettings(vp: Viewport): Hilite.Settings;
    protected apply(vp: Viewport, settings?: Hilite.Settings): void;
}
/** Changes the [FlashSettings]($frontend) for the selected [Viewport]($frontend).
 * @beta
 */
export declare class ChangeFlashSettingsTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    run(settings?: FlashSettings): Promise<boolean>;
    parseAndRun(...inputArgs: string[]): Promise<boolean>;
}
/** Enables or disables fade-out transparency mode for the selected viewport.
 * @beta
 */
export declare class FadeOutTool extends ViewportToggleTool {
    static toolId: string;
    protected toggle(vp: Viewport, enable?: boolean): Promise<void>;
}
/** Sets the default tile size modifier used for all viewports that don't explicitly override it.
 * @beta
 */
export declare class DefaultTileSizeModifierTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    /** This method runs the tool, setting the default tile size modifier used for all viewports that don't explicitly override it.
     * @param modifier the tile size modifier to use; if undefined, do not set modifier
     */
    run(modifier?: number): Promise<boolean>;
    /** Executes this tool's run method with args[0] containing `modifier`.
     * @see [[run]]
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** Sets or clears the tile size modifier override for the selected viewport.
 * @beta
 */
export declare class ViewportTileSizeModifierTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    /** This method runs the tool, setting the tile size modifier used for the selected viewport.
     * @param modifier the tile size modifier to use; if undefined, reset the modifier
     */
    run(modifier?: number): Promise<boolean>;
    /** Executes this tool's run method with args[0] containing the `modifier` argument or the string "reset" in order to reset the modifier.
     * @see [[run]]
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** This tool adds a reality model to the viewport.
 * @beta
 */
export declare class ViewportAddRealityModel extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    /** This method runs the tool, adding a reality model to the viewport
     * @param url the URL which points to the reality model tileset
     */
    run(url: string): Promise<boolean>;
    /** Executes this tool's run method with args[0] containing the `url` argument.
     * @see [[run]]
     */
    parseAndRun(...args: string[]): Promise<boolean>;
}
/** Changes the `allow3dManipulations` flag for the selected viewport if the viewport is displaying a `ViewState3d`.
 * @beta
 */
export declare class Toggle3dManipulationsTool extends ViewportToggleTool {
    static toolId: string;
    protected toggle(vp: Viewport, allow?: boolean): Promise<void>;
}
/** Toggles display of view attachments in sheet views.
 * @beta
 */
export declare class ToggleViewAttachmentsTool extends ViewportToggleTool {
    static toolId: string;
    protected toggle(vp: Viewport, enable?: boolean): Promise<void>;
}
/** Toggle display of view attachment boundaries in sheet views.
 * @beta
 */
export declare class ToggleViewAttachmentBoundariesTool extends ViewportToggleTool {
    static toolId: string;
    protected toggle(vp: Viewport, enable?: boolean): Promise<void>;
}
/** Toggle display of view attachment clip shapes in sheet views.
 * @beta
 */
export declare class ToggleViewAttachmentClipShapesTool extends ViewportToggleTool {
    static toolId: string;
    protected toggle(vp: Viewport, enable?: boolean): Promise<void>;
}
/** Toggles display of 2d graphics in a [DrawingViewState]($frontend). This setting affects all drawing views until it is reset.
 * @beta
 */
export declare class ToggleDrawingGraphicsTool extends ViewportToggleTool {
    static toolId: string;
    protected toggle(vp: Viewport, enable?: boolean): Promise<void>;
}
/** Toggles whether a [SectionDrawing]($backend)'s spatial view is always displayed along with the 2d graphics by a [DrawingViewState]($frontend), even
 * if it otherwise would not be. This setting affects all section drawing views until it is reset.
 * @beta
 */
export declare class ToggleSectionDrawingSpatialViewTool extends ViewportToggleTool {
    static toolId: string;
    protected toggle(vp: Viewport, enable?: boolean): Promise<void>;
}
/** Change the camera settings of the selected viewport.
 * @beta
 */
export declare class ChangeCameraTool extends Tool {
    static get minArgs(): number;
    static get maxArgs(): number;
    static toolId: string;
    run(camera?: Camera): Promise<boolean>;
    parseAndRun(...inArgs: string[]): Promise<boolean>;
}
//# sourceMappingURL=ViewportTools.d.ts.map