/**
 * Don't modify this file, the RPC generated code depends on its interface.
 */
import { Box3, RGB, RGBA, RGBA32, Segment, Vector2, Vector3, Matrix44 } from "../utils/math3d";
export type HitCheckResult = {
    vimHandle: number;
    nodeIndex: number;
    worldPosition: Vector3;
    worldNormal: Vector3;
};
export type VimStatus = {
    status: number;
    progress: number;
};
export type SectionBoxState = {
    visible: boolean;
    interactible: boolean;
    clip: boolean;
    box: Box3;
};
export type Vector4 = {
    x: number;
    y: number;
    z: number;
    w: number;
};
export declare class Marshal {
    private buffer;
    private _dataView;
    private _offset;
    constructor(initialSize?: number);
    getBuffer(): ArrayBuffer;
    private ensureCapacity;
    writeData(data: ArrayBuffer): void;
    writeMatrix44(data: Matrix44): void;
    writeBoolean(value: boolean): void;
    writeInt(value: number): void;
    writeUInt(value: number): void;
    writeFloat(value: number): void;
    writeString(value: string): void;
    writeHitCheckResult(data: HitCheckResult): void;
    writeVimStatus(data: VimStatus): void;
    writeVector2(data: Vector2): void;
    writeVector3(data: Vector3): void;
    writeVector4(data: Vector4): void;
    writeRGBA(color: RGBA): void;
    writeRGB(color: RGBA): void;
    writeRGBA32(color: RGBA32): void;
    writeSegment(segment: Segment): void;
    writeBox3(data: Box3): void;
    writeSectionBoxState(data: SectionBoxState): void;
    writeArrayOfInt(values: number[]): void;
    writeArrayOfUInt(values: number[]): void;
    writeArrayOfFloat(values: number[]): void;
    writeArrayOfBool(values: boolean[]): void;
    writeArrayOfRGBA32(values: RGBA32[]): void;
    writeArray<T>(data: T[], sizeT: number, write: (data: T) => void): void;
}
export declare class ReadMarshal {
    private _dataView;
    private _offset;
    constructor(buffer: ArrayBuffer);
    readMatrix44(): Matrix44;
    readInt(): number;
    readUInt(): number;
    readFloat(): number;
    readBoolean(): boolean;
    readString(): string;
    readHitCheckResult(): HitCheckResult;
    readVimStatus(): VimStatus;
    readVector2(): Vector2;
    readVector3(): Vector3;
    readVector4(): Vector4;
    readRGBA(): RGBA;
    readRGB(): RGB;
    readRGBA32(): RGBA32;
    readBox3(): Box3;
    readSegment(): Segment;
    readSectionBoxState(): SectionBoxState;
    readArrayOfInt(): number[];
    readArrayOfUInt(): number[];
    readArrayOfFloat(): number[];
    readArrayOfBool(): boolean[];
    readArrayOfRGBA32(): RGBA32[];
    readArray<T>(read: () => T): T[];
}
