import { BufferGeometry, Matrix3, Matrix4, Object3D, Side, Vector3 } from "three";
import { UpdateDraw } from "../../Common/Status";
import { ObjectSnapMode } from "../../Editor/ObjectSnapMode";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from "../CADFiler";
import { CADObject } from "../CADObject";
import { Entity } from "./Entity";
import { Polyline } from "./Polyline";
export declare class Image extends Entity {
    protected OnlyRenderType: boolean;
    private _ImageUrl;
    private _ImageSizeX;
    private _ImageSizeY;
    private _ImageScaleX;
    private _ImageScaleY;
    private _ImageClipPoly;
    private _FaceSide;
    private texture;
    constructor(imageSizeX?: number, imageSizeY?: number);
    get FaceSide(): Side;
    set FaceSide(v: Side);
    get ImageUrl(): string;
    set ImageUrl(url: string);
    get ImageSizeX(): number;
    get ImageSizeY(): number;
    get ImageScaleX(): number;
    set ImageScaleX(v: number);
    get ImageScaleY(): number;
    set ImageScaleY(v: number);
    get ImageClipPoly(): Polyline;
    /**
     * 请注意 v不需要OCS 请调用MatrixIdentity清除
     */
    set ImageClipPoly(v: Polyline);
    ApplyScaleMatrix(m: Matrix4): this;
    Update(mode?: UpdateDraw): Promise<void>;
    UpdateTexture(url?: string): Promise<void>;
    GetPolyline(): Polyline;
    GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
    GetGripPoints(): Array<Vector3>;
    MoveGripPoints(indexList: number[], vec: Vector3): void;
    GetStretchPoints(): Vector3[];
    MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
    private _MeshGeometry;
    get MeshGeometry(): BufferGeometry;
    private _EdgeGeometry;
    private get EdgeGeometry();
    private UpdateGeometry;
    UpdateDrawGeometry(): void;
    InitDrawObject(renderType?: RenderType): Object3D;
    UpdateDrawObject(renderType: RenderType, obj: Object3D): Object3D;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
    ApplyPartialUndo(undoData: CADObject): void;
}
//# sourceMappingURL=Image.d.ts.map