export declare class ViralutionElement {
    Solids: ViralutionSolid[];
    Id: string;
    Instances: RevitTransform[];
}
export declare class ViralutionStandaloneModel {
    Materials: RenderMaterial[];
    Elements: ViralutionElement[];
    Camera: ViralutionCamera;
}
export declare class ViralutionSolid {
    MaterialIndex: number;
    Vertices: ViralPoint[];
    Indices: number[];
    Buffer: number[];
}
export declare class ViralutionCamera {
    scale: number;
    origin: ViralPoint;
    eyePosition: ViralPoint;
    upDirection: ViralPoint;
    forwardDirection: ViralPoint;
    target: ViralPoint;
    box: ViralutionBox;
}
export declare class ViralutionBox {
    min: ViralPoint;
    max: ViralPoint;
}
export declare class ViralutionTrackingModel {
    Data: {
        [key: number]: number[][];
    };
    CameraData: ViralutionCamera;
    Translation?: number[];
    Type: string;
    InformationChunks?: number[][];
}
export declare class ViralPoint {
    X: number;
    Y: number;
    Z: number;
}
export interface RenderMaterial {
    Name: string;
    Opacity: number;
    Metalness: number;
    Roughness: number;
    Red: number;
    Green: number;
    Blue: number;
}
export interface RevitTransform {
    BasisX: ViralPoint;
    BasisY: ViralPoint;
    BasisZ: ViralPoint;
    Offset: ViralPoint;
    Id: string;
}
export interface ViralViewerState {
    CameraPoint: ViralPoint;
    TargetPoint: ViralPoint;
    FocalOffset?: ViralPoint;
    IsolatingElements?: {
        modelId: string;
        elementId: string;
    }[];
    HidingElements?: {
        modelId: string;
        elementId: string;
    }[];
    ElevationSection?: {
        elevation: number;
        thickness: number;
        direction: "top-down" | "bottom-up";
    };
}
