import { Status } from "../../Common/Status";
import { CADFiler } from "../CADFiler";
import { CADObject } from "../CADObject";
import { ISerialize } from "../ISerialize";
import { LayerTableRecord } from "../LayerTableRecord";
import { ObjectId } from "../ObjectId";
import { SymbolTableRecord } from "../SymbolTableRecord";
import { SymbolTable } from "./SymbolTable";
export declare class LayerTable extends SymbolTable {
    protected _Current: ObjectId<LayerTableRecord>;
    get Current(): ObjectId<LayerTableRecord>;
    set Current(id: ObjectId<LayerTableRecord>);
    /** 用于描述图层结构的根节点 */
    private _Root;
    get Root(): LayerNode;
    set Root(root: LayerNode);
    Add(record: SymbolTableRecord, isCheckObjectCleanly?: boolean): Status;
    ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
    ApplyPartialUndo(undoData: CADObject): void;
}
/** 用于描述图层结构的节点 */
export declare class LayerNode implements ISerialize {
    name: string;
    children: LayerNode[];
    constructor(name: string, isHasChildren?: boolean);
    ReadFile(f: CADFiler): void;
    WriteFile(f: CADFiler): void;
}
/**
 * 记录当前id的序列化数据
 */
export declare class ObjectIdData implements ISerialize {
    objectId: ObjectId;
    ReadFile(file: CADFiler): this;
    WriteFile(file: CADFiler): this;
    constructor(objectId: ObjectId);
}
/** 记录树状结构的序列化数据*/
export declare class ObjectTreeData implements ISerialize {
    data: LayerNode;
    ReadFile(file: CADFiler): this;
    WriteFile(file: CADFiler): this;
    constructor(data: LayerNode);
}
//# sourceMappingURL=LayerTable.d.ts.map