/** @packageDocumentation
 * @module Views
 */
import { Id64String } from "@itwin/core-bentley";
import { AxisAlignedBox3d, HydrateViewStateRequestProps, HydrateViewStateResponseProps, SectionDrawingViewProps, ViewDefinition2dProps, ViewStateProps } from "@itwin/core-common";
import { Transform, Vector3d } from "@itwin/core-geometry";
import { CategorySelectorState } from "./CategorySelectorState";
import { DisplayStyle2dState } from "./DisplayStyleState";
import { IModelConnection } from "./IModelConnection";
import { DisclosedTileTreeSet } from "./tile/internal";
import { SceneContext } from "./ViewContext";
import { AttachToViewportArgs, ExtentLimits, ViewState2d, ViewState3d } from "./ViewState";
/** Strictly for testing.
 * @internal
 */
export interface SectionDrawingInfo {
    readonly spatialView: Id64String;
    readonly drawingToSpatialTransform: Transform;
}
/** A view of a [DrawingModel]($backend)
 * @public
 * @extensions
 */
export declare class DrawingViewState extends ViewState2d {
    static get className(): string;
    /** Exposed strictly for testing and debugging. Indicates that when loading the view, the spatial view should be displayed even
     * if `SectionDrawing.displaySpatialView` is not `true`.
     * @internal
     */
    static alwaysDisplaySpatialView: boolean;
    /** Exposed strictly for testing and debugging. Indicates that the 2d graphics should not be displayed.
     * @internal
     */
    static hideDrawingGraphics: boolean;
    private readonly _viewedExtents;
    private _attachmentInfo;
    private _attachment?;
    /** Strictly for testing. @internal */
    get sectionDrawingProps(): SectionDrawingViewProps | undefined;
    /** Strictly for testing. @internal */
    get sectionDrawingInfo(): SectionDrawingInfo;
    /** Strictly for testing. @internal */
    get attachment(): Object | undefined;
    /** Strictly for testing. @internal */
    get attachmentInfo(): {
        spatialView: Id64String | ViewState3d;
    };
    constructor(props: ViewDefinition2dProps, iModel: IModelConnection, categories: CategorySelectorState, displayStyle: DisplayStyle2dState, extents: AxisAlignedBox3d, sectionDrawing?: SectionDrawingViewProps);
    /** See [[ViewState.attachToViewport]]. */
    attachToViewport(args: AttachToViewportArgs): void;
    /** See [[ViewState.detachFromViewport]]. */
    detachFromViewport(): void;
    /** @internal */
    changeViewedModel(modelId: Id64String): Promise<void>;
    private querySectionDrawingProps;
    /** @internal */
    protected preload(hydrateRequest: HydrateViewStateRequestProps): void;
    /** @internal */
    protected postload(hydrateResponse: HydrateViewStateResponseProps): Promise<void>;
    static createFromProps(props: ViewStateProps, iModel: IModelConnection): DrawingViewState;
    toProps(): ViewStateProps;
    getViewedExtents(): AxisAlignedBox3d;
    get defaultExtentLimits(): ExtentLimits;
    /** @internal */
    isDrawingView(): this is DrawingViewState;
    /** See [[ViewState.getOrigin]]. */
    getOrigin(): import("@itwin/core-geometry").Point3d;
    /** See [[ViewState.getExtents]]. */
    getExtents(): Vector3d;
    /** @internal */
    discloseTileTrees(trees: DisclosedTileTreeSet): void;
    /** @internal */
    createScene(context: SceneContext): void;
    /** @internal */
    get areAllTileTreesLoaded(): boolean;
    /** @internal */
    get secondaryViewports(): Iterable<import("./Viewport").Viewport>;
}
//# sourceMappingURL=DrawingViewState.d.ts.map