import type { SocketClient } from './socketClient';
import * as RpcTypes from './rpcTypes';
export type MaterialHandle = 4294967295 | 6 | 2 | 0 | 1 | 3 | 4 | 5 | 7 | 8;
export declare class MaterialHandles {
    static readonly Invalid: MaterialHandle;
    static readonly Wireframe: MaterialHandle;
    static readonly FlatShaded: MaterialHandle;
    static readonly StandardOpaque: MaterialHandle;
    static readonly StandardGlass: MaterialHandle;
    static readonly GhostOutline: MaterialHandle;
    static readonly GhostFill: MaterialHandle;
    static readonly GhostBoth: MaterialHandle;
    static readonly Highlight: MaterialHandle;
    static readonly Invisible: MaterialHandle;
}
export declare const materialHandles: MaterialHandle[];
export declare class RpcClient {
    private readonly _socket;
    get connected(): boolean;
    get url(): string;
    constructor(_socket: SocketClient);
    readonly API_VERSION = "5.1.0";
    RPCAddNodeFlags(componentHandle: number, nodes: number[], flags: number): void;
    RPCClearMaterialOverrides(componentHandle: number): void;
    RPCClearScene(): void;
    RPCCreateMaterialInstances(materialHandle: number, smoothness: number, colors: RpcTypes.RGBA32[]): Promise<number>;
    RPCCreateText(position: RpcTypes.Vector3, color: RpcTypes.RGBA32, text: string): Promise<number>;
    RPCDestroyMaterialInstances(materialInstanceHandle: number[]): void;
    RPCDestroyText(componentHandle: number): void;
    RPCEnableSectionBox(value: boolean): void;
    RPCFrameAll(blendTime: number): Promise<RpcTypes.Segment>;
    RPCFrameBox(box: RpcTypes.Box3, blendTime: number): Promise<RpcTypes.Segment>;
    RPCFrameInstances(componentHandle: number, nodes: number[], blendTime: number): Promise<RpcTypes.Segment>;
    RPCFrameVim(componentHandle: number, blendTime: number): Promise<RpcTypes.Segment>;
    RPCGetAPIVersion(): Promise<string>;
    RPCGetBoundingBox(componentHandle: number, nodes: number[]): Promise<RpcTypes.Box3>;
    RPCGetBoundingBoxAll(componentHandle: number): Promise<RpcTypes.Box3>;
    RPCGetCameraPosition(): Promise<RpcTypes.Segment>;
    RPCGetIblRotation(): Promise<RpcTypes.Matrix44>;
    RPCGetLastError(): Promise<string>;
    RPCGetSceneAABB(): Promise<RpcTypes.Box3>;
    RPCGetSectionBox(): Promise<RpcTypes.SectionBoxState>;
    RPCGetVimLoadingState(componentHandle: number): Promise<RpcTypes.VimStatus>;
    RPCGhost(componentHandle: number, nodes: number[]): void;
    RPCGhostAll(componentHandle: number): void;
    RPCHide(componentHandle: number, nodes: number[]): void;
    RPCHideAABBs(componentHandle: number, nodes: number[]): void;
    RPCHideAll(componentHandle: number): void;
    RPCHideAllAABBs(componentHandle: number): void;
    RPCHighlight(componentHandle: number, nodes: number[]): void;
    RPCHighlightAll(componentHandle: number): void;
    RPCKeyEvent(keyCode: number, down: boolean): void;
    RPCLoadVim(fileName: string): Promise<number>;
    RPCLoadVimURL(url: string, authToken: string): Promise<number>;
    RPCLockIblRotation(lock: boolean): void;
    RPCMouseButtonEvent(mousePos: RpcTypes.Vector2, mouseButton: number, down: boolean): void;
    RPCMouseDoubleClickEvent(mousePos: RpcTypes.Vector2, mouseButton: number): void;
    RPCMouseMoveEvent(mousePos: RpcTypes.Vector2): void;
    RPCMouseScrollEvent(scrollValue: number): void;
    RPCMouseSelectEvent(mousePos: RpcTypes.Vector2, mouseButton: number): void;
    RPCMoveCameraTo(usePosition: boolean, useTarget: boolean, position: RpcTypes.Vector3, target: RpcTypes.Vector3, blendTime: number): void;
    RPCPauseRendering(pause: boolean): void;
    RPCPerformHitTest(pos: RpcTypes.Vector2): Promise<RpcTypes.HitCheckResult>;
    RPCRemoveNodeFlags(componentHandle: number, nodes: number[], flags: number): void;
    RPCSetAspectRatio(width: number, height: number): void;
    RPCSetCameraMode(orbit: boolean): void;
    RPCSetCameraPosition(state: RpcTypes.Segment, blendTime: number): void;
    RPCSetGhostColor(ghostColor: RpcTypes.RGBA): void;
    RPCSetIblRotation(transform: RpcTypes.Matrix44): void;
    RPCSetLighting(toneMappingWhitePoint: number, hdrScale: number, hdrBackgroundScale: number, hdrBackgroundSaturation: number, backgroundBlur: number, backgroundColor: RpcTypes.RGBA): void;
    RPCSetMaterialOverrides(componentHandle: number, nodes: number[], materialInstanceHandles: number[]): void;
    RPCSetMoveSpeed(speed: number): void;
    RPCSetSectionBox(state: RpcTypes.SectionBoxState): void;
    RPCShow(componentHandle: number, nodes: number[]): void;
    RPCShowAABBs(componentHandle: number, nodes: number[], colors: RpcTypes.RGBA32[]): void;
    RPCShowAll(componentHandle: number): void;
    RPCStartScene(toneMappingWhitePoint: number, hdrScale: number, hdrBackgroundScale: number, hdrBackgroundSaturation: number, backgroundBlur: number, backgroundColor: RpcTypes.RGBA): Promise<boolean>;
    RPCTriggerRenderDocCapture(): void;
    RPCUnloadVim(componentHandle: number): void;
}
