import type { DwgViewportEntity } from "@mlightcad/libredwg-web";
import IGeometry, { IEntity, IPoint } from "./geomtry";
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
/**
 * Viewport is usually used in paper space.
 * https://help.autodesk.com/view/OARX/2025/ENU/?guid=GUID-2602B0FB-02E4-4B9A-B03C-B1D904753D34
 */
export interface IViewportEntity extends IEntity {
    centerPoint: IPoint;
    width_paperSpace: number;
    height_paperSpace: number;
    /**
     * -1 = On, but is fully off screen, or is one of the viewports that is not active because the $MAXACTVP count is currently being exceeded.
     * 0 = Off
     * <positive value > = On and active. The value indicates the order of stacking for the viewports, where 1 is the active viewport, 2 is the next, and so forth
     */
    viewportStatus: number;
    /**
     * Not a handle hex string, but a int value. Usually is "1", "2", "3", etc.
     * viewportId "1" means the Model space viewport.
     * "2", "3", ... are paper space viewports.
     */
    viewportId: number;
    centerPoint_dcs: IPoint;
    snapBasePoint_dcs: IPoint;
    snapSpacing_dcs: IPoint;
    gridSpacing_dcs: IPoint;
    viewDirection: IPoint;
    viewTarget: IPoint;
    perspectiveLensLength: number;
    frontClipPlaneZ: number;
    backClipPlaneZ: number;
    viewHeight: number;
    snapAngle: number;
    viewTwistAngle: number;
    circleZoomPercent: number;
    frozenLayerHandles: string[];
    viewportStatusFlags: number;
    /**
     * Hard-pointer ID/handle to entity that serves as the viewport's clipping boundary (only present if viewport is non-rectangular)
     */
    viewportClippingBoundaryhandleId: string;
    plotStyleSheetName: string;
    renderMode: number;
    /**
     * 0 = The UCS will not change when this viewport becomes active.
     * 1 = This viewport stores its own UCS which will become the current UCS whenever the viewport is activated
     */
    viewportFlag_ucs: number;
    ucsIcon: string;
    ucsOrigin: IPoint;
    ucsXAxis: IPoint;
    ucsYAxis: IPoint;
    ucsTableRecordHandle: string;
    baseUcsTableRecordHandle: string;
    orthographicType: number;
    elevation: number;
    shadePlotMode: number;
    frequency: number;
    lightingFlag: number;
    lightingType: number;
    viewBrightness: number;
    viewContrast: number;
}
export default class Viewport implements IGeometry {
    ForEntityType: "VIEWPORT";
    parseEntity(scanner: DxfBaseReader, curr: IGroup): IViewportEntity;
    parseDwgEntity(entity: DwgViewportEntity): IEntity;
}
