import { Matrix4 } from 'three';
import { Vec3 } from '../Geometry/IVec3';
import { CADObject } from './CADObject';
import { Database } from './Database';
import { ISerialize } from './ISerialize';
import { ObjectId } from './ObjectId';
/**
 * CAD文件数据
 */
export declare class CADFiler {
    protected _datas: any[];
    database: Database;
    private readIndex;
    constructor(_datas?: any[]);
    Destroy(): void;
    get Data(): any[];
    set Data(data: any[]);
    Clear(): this;
    Reset(): this;
    WriteString(str: string): this;
    ReadString(): string;
    WriteObject(obj: ISerialize): this;
    ReadObject<T extends ISerialize = CADObject>(obj?: T): T;
    CloneObjects(objects: CADObject[], clonedObjects?: CADObject[]): CADObject[];
    Write(data: any): this;
    WriteBool(v: boolean): void;
    WriteVec3(v3: Vec3): void;
    WriteMatrix4(m: Matrix4): void;
    Write2dArray(arr: [any, any][]): void;
    Read(): any;
    ReadBool(): boolean;
    ReadMatrix4(): Matrix4;
    ReadArray(count: number): any[];
    Read2dArray(): [any, any][];
    WriteObjectId(id: ObjectId): this;
    ReadObjectId(): ObjectId;
    WriteSoftObjectId(id: ObjectId): this;
    ReadSoftObjectId(): ObjectId;
    WriteHardObjectId(id: ObjectId): this;
    ReadHardObjectId(): ObjectId<CADObject>;
    ToString(): string;
    FromString(str: string): void;
}
//# sourceMappingURL=CADFiler.d.ts.map