/** @packageDocumentation
 * @module Tools
 */
import { AxisAlignedBox3d } from "@itwin/core-common";
import { DecorateContext, IModelConnection, Tool } from "@itwin/core-frontend";
/** @beta */
export declare class ProjectExtentsDecoration {
    private static _decorator?;
    protected _removeDecorationListener?: () => void;
    protected _extents: AxisAlignedBox3d;
    constructor(iModel: IModelConnection);
    protected stop(): void;
    protected updateDecorationListener(add: boolean): void;
    static get isActive(): boolean;
    /** This will allow the render system to cache and reuse the decorations created by this decorator's decorate() method. */
    readonly useCachedDecorations = true;
    decorate(context: DecorateContext): void;
    static toggle(imodel: IModelConnection, enabled?: boolean): boolean;
}
/** Enable or disable the project extents decoration. This decoration draws a box coinciding with the iModel's project extents.
 * @param imodel The iModel from which to obtain the extents.
 * @param enable If undefined, the current enabled state of the decoration will be inverted; otherwise it will be enabled if true, or disabled if false.
 * @returns true if the extents are now ON, false if they are now OFF.
 * @beta
 */
export declare function toggleProjectExtents(imodel: IModelConnection, enabled?: boolean): boolean;
/** Enable or disable project extents decoration.
 * The key-in takes at most 1 argument (case-insensitive):
 *  - "ON" => enable project extents
 *  - "OFF" => disable project extents
 *  - "TOGGLE" or omitted => toggle project extents
 * @see [toggleProjectExtents]
 * @beta
 */
export declare class ToggleProjectExtentsTool extends Tool {
    static toolId: string;
    static get minArgs(): number;
    static get maxArgs(): number;
    run(enable?: boolean): Promise<boolean>;
    parseAndRun(...args: string[]): Promise<boolean>;
}
//# sourceMappingURL=ProjectExtents.d.ts.map