export type Coordinate = [number, number];
declare const DoorType: {
    single: string;
    double: string;
    move: string;
};
declare const DoorMaterial: {
    wood: string;
    glass: string;
    aluminum: string;
};
export interface Door {
    name: string;
    id: string;
    width: number;
    open: boolean;
    type: keyof typeof DoorType;
    material: keyof typeof DoorMaterial;
    coordinate: Coordinate;
    coord: Coordinate;
}
export interface PointGeometry {
    type: "point";
    cds: Coordinate;
    coords: Coordinate;
    curveCpt: Coordinate[];
    curveIndex: [];
}
export interface PolygonGeometry {
    type: "polygon";
    cds: Coordinate[][];
    curveCpt: Coordinate[];
    curveIndex: number[];
    coords: Coordinate[][];
    otherCds?: Coordinate[][];
    otherCoords?: Coordinate[][];
}
export interface GraphicOptions {
    id: string;
    height: number;
    airHeight: number;
    area: number;
    group: string;
    fillColor: string;
    fillOpacity: number;
    strokeColor: string;
    strokeOpacity: number;
    strokeWidth: number;
    visible: boolean;
    doors: Door[];
    center?: [number, number];
    center_x: number;
    center_y: number;
    center_coord_x: number;
    center_coord_y: number;
    geometry: PolygonGeometry | PointGeometry;
    mergedGeometry?: Record<any, any>;
    lineGeometry?: Record<any, any>;
    layerType: string;
    zIndex: number;
    transformToBuildingGround?: boolean;
    deltaHeight: number;
    stroke?: boolean;
    userData: Record<string, any>;
    gradualColor: string[];
    renderType: "gradual" | "single";
    colorFactor: number;
    secondUrl?: string;
    dashed?: boolean;
}
export interface MergedElementsGraphicOptions extends GraphicOptions {
    mergedGeometry: Record<any, any>;
    lineGeometry?: Record<any, any>;
}
/**
 * 接口返回的图元信息
 */
export interface ResGraphicInfo {
    floor_id: string;
    element_uuid: string;
    is_building: string;
    node_id: string;
    node_type: string;
    resource_type: string;
    layer_type: string;
    info: string;
    resource_id: string;
    legacy_id: string;
    source: any;
    area: number;
    input_area: number;
}
export interface GraphicInfo extends Omit<ResGraphicInfo, "info"> {
    info: GraphicOptions;
}
export interface LoadQuery {
    brand: string;
    project: string;
    floor: string;
    ts: string;
    resource_type_list: string;
}
export interface ParkingOption {
    id: string;
    height: number;
    airHeight: number;
    area: number;
    group: string;
    fillColor: string;
    fillOpacity: number;
    strokeColor: string;
    strokeOpacity: number;
    strokeWidth: number;
    visible: boolean;
    doors: any[];
    layerType: string;
    zIndex: number;
    deltaHeight?: number;
    canMerge: boolean;
    texts: string[];
    userData: Record<string, any>;
    center_x: number;
    center_y: number;
    center_coord_x: number;
    center_coord_y: number;
    poi_info: any;
    parkingType: string;
    geometry: PolygonGeometry;
}
export interface BufferOrInterleavedBufferAttribute {
    array: number[];
    itemSize: number;
    type: string;
    normalized: boolean;
    isBufferAttribute?: boolean;
    isInterleavedBufferAttribute?: boolean;
    data: string;
    offset: number;
}
export interface MergedGeometry {
    attributes: {
        [name: string]: BufferOrInterleavedBufferAttribute;
    };
    index: BufferOrInterleavedBufferAttribute | null;
    morphAttributes: {
        [name: string]: BufferOrInterleavedBufferAttribute[];
    };
    morphTargetsRelative: boolean;
    groups: Array<{
        start: number;
        count: number;
        materialIndex?: number;
    }>;
}
export declare enum ParkingType {
    HALF = "half",
    POWER = "power",
    MECHANICAL = "mechanical",
    NORMAL = "normal",
    VIP = "vip"
}
export {};
